Hi All,
I am facing problem while apply *JOIN* on 2 Tables(Parent-Child) by using Java Persistence Query Language (JPQL).
Code is given below :
Tables:
While apply *JOIN* query by using JPQL like,
Here, Employee,Task and Project are entity classes.
taskCollection is a collection that is declared on Employee entity class and entityManager is an object of EntityManager.
Here, if I am passing projectId = 3,
So I get result like :
EmpID : 1
TaskID : 1
TaskID : 5
EmpID : 2
TaskID : 2
TaskID : 6
EmpID : 3
TaskID : 3
TaskID : 7
EmpID : 4
TaskID : 4
TaskID : 8
Instead of get,
EmpID : 1
TaskID : 1
EmpID : 2
TaskID : 2
EmpID : 3
TaskID : 3
EmpID : 4
TaskID : 4
If I write JOIN query by using SQL like,
and pass projectId = 3 so I get result like :
EmpID : 1
TaskID : 1
EmpID : 2
TaskID : 2
EmpID : 3
TaskID : 3
EmpID : 4
TaskID : 4
This one is correct result.
Here *JPQL* and *SQL* query, both are same but the query output is different.
Can anybody will help me to get my expected result by using *JPQL* query or give me suggestion how can I write *JPQL* query to get my expected result .
Expected result is : (Consider above tables)
If I pass projectId = 3
Output is :
EmpID : 1
TaskID : 1
EmpID : 2
TaskID : 2
EmpID : 3
TaskID : 3
EmpID : 4
TaskID : 4
Tell me if any attribute that I have to set on entity classes while apply JOIN using JPQL query.
Waiting for your positive reply,
Thanks,
Amita.
[ September 21, 2008: Message edited by: Amita Shiroya ]