| Author |
EJB-QL
|
sonali rao
Ranch Hand
Joined: Nov 03, 2003
Posts: 64
|
|
Mock exam question :Why is the following EJB-QL statement wrong? SELECT s.name FROM Student s, Program p where s.subjectid=p.subjectId
|
 |
Sudhir V
Ranch Hand
Joined: Dec 25, 2002
Posts: 143
|
|
|
Please provide some more details about the Student and Program tables.
|
Sudhir V<br />(SCJP 1.2, SCWCD, OCA, SCBCD)
|
 |
Todor Mollov
Ranch Hand
Joined: Jan 13, 2004
Posts: 30
|
|
|
You cannot use JOINs in EJB-QL.
|
 |
Sudhir V
Ranch Hand
Joined: Dec 25, 2002
Posts: 143
|
|
Hi Todor Joins are allowed in EJB-QL. Please see the query in Pg233 of EJB Spec. Below is the query SELECT DISTINCT OBJECT(o1) FROM Order o1, Order o2 WHERE o1.quantity > o2.quantity AND o2.customer.lastname = �Smith� AND o2.customer.firstname= �John� [ February 29, 2004: Message edited by: Sudhir Vallam ]
|
 |
Todor Mollov
Ranch Hand
Joined: Jan 13, 2004
Posts: 30
|
|
Hi Sudhir, of course you are rigth but I was thinking in the context of the current thread. So the question is : Why this EJB-QL is wrong
SELECT s.name FROM Student s, Program p where s.subjectid=p.subjectId
and the spec says on p.232
Because finder methods cannot return arbitrary types, the SELECT clause of an EJB QL query defined for a finder method must always correspond to the abstract schema type of the entity bean for which the finder method is defined.
and later on
In contrast, the SELECT clause of a query defined for a select method can return the abstract schema types of other entity beans or the values of cmp-fields.
The given EJB-QL states that the method is select method (because of the return type), so it appeared that this EJB-QL is right.
|
 |
 |
|
|
subject: EJB-QL
|
|
|