check if the variable 'ID' used in the query Delete  from Person p where ID = 
39 is correct....


________________________________
From: java-ee-j2ee-programming-with-passion@googlegroups.com 
[mailto:java-ee-j2ee-programming-with-pass...@googlegroups.com] On Behalf Of 
Biljana Biljana
Sent: Friday, May 15, 2009 4:45 PM
To: J2EE Passion Group
Subject: [java ee programming] Homework in lab 4203

This is my error message when I try to delete one user from person table:
HTTP Status 500 -
________________________________
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from 
fulfilling this request.
exception

javax.servlet.ServletException: java.lang.IllegalArgumentException: An 
exception occured while creating a query in EntityManager

root cause

java.lang.IllegalArgumentException: An exception occured while creating a query 
in EntityManager

root cause

Exception [TOPLINK-8004] (Oracle TopLink Essentials - 2.1 (Build b60e-fcs 
(12/23/2008))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Error compiling the query [Delete  from Person p where 
ID = 39], line 1, column 29: unknown identification variable [id]. The FROM 
clause of the query does not declare an identification variable [id].

note The full stack traces of the exception and its root causes are available 
in the Sun GlassFish Enterprise Server v2.1 logs.
________________________________
Sun GlassFish Enterprise Server v2.1
My DeletePersonServlet which was called have this code:
 @PersistenceUnit
    //The emf corresponding to
    private EntityManagerFactory emf;
    @Resource
    private UserTransaction utx;
    protected void processRequest(HttpServletRequest request, 
HttpServletResponse response)
    throws ServletException, IOException {
        assert emf != null;  //Make sure injection went through correctly.
        EntityManager em = null;
        try {
            //Get the data from user's form
            HttpSession session = request.getSession();
            String id         = (String) session.getAttribute("id");
            String firstName  = (String) session.getAttribute("firstName");
            String lastName   = (String) session.getAttribute("lastName");
            //Create a person instance out of it
            Person person = new Person(id, firstName, lastName);
            //begin a transaction
            utx.begin();
            //create an em.
            //Since the em is created inside a transaction, it is associsated 
with
            //the transaction
            em = emf.createEntityManager();
            //delete the person entity
             Query squery = em.createQuery("Delete  from Person p where ID = " 
+ id);
             //squery.setParameter(1, id);
             squery.executeUpdate();

            //commit transaction which will trigger the em to
            //commit newly created entity into database
            utx.commit();
            //Forward to ListPerson servlet to list persons along with the newly
            //created person above
            request.getRequestDispatcher("ListPerson").forward(request, 
response);
        } catch (Exception ex) {
            throw new ServletException(ex);
        } finally {
            //close the em to release any resources held up by the persistebce 
provider
            if(em != null) {
                em.close();
            }
        }
    }

I notice that it took id from last one created person, not from one I want, I 
set attribute
with: <c:set value="id" scope="session" var="${person.id}"/>

But I just dont know how to set right id like is done for
<h:commandLink...>
<f:param.../>
</h:commandLink>

because this






--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Java 
EE (J2EE) Programming with Passion!" group.
To post to this group, send email to 
java-ee-j2ee-programming-with-passion@googlegroups.com
To unsubscribe from this group, send email to 
java-ee-j2ee-programming-with-passion+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/java-ee-j2ee-programming-with-passion?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to