persistence@glassfish.java.net

code review for issue 189

From: jie leng <jie.leng_at_Sun.COM>
Date: Sat, 18 Mar 2006 14:57:50 -0800

Hi, Tom, Gordon, Michael,

Please find attached changes to fix issue 189 - outer join is missing
from generated sql.

If the query is like:

SELECT c from Order o LEFT OUTER JOIN o.customer c

The generated sql "SELECT t0.id, ... from CUSTOMER_TABLE t0, ORDER_TABLE
t1 WHERE (t1.CUST_ID = t0.ID)" is missing LEFT OUTER JOIN.

I made change in ParseTree:addNonFetchJoinAttributes() to add the node
expression to ObjectLevelReadQuery if the node is JoinDeclNode.

Now the generated sql is like:

SELECT t0.ID, ... FROM ORDER_TABLE t2 LEFT OUTER JOIN CUSTOMER_TABLE t1
ON (t1.ID = t2.CUST_ID), CUSTOMER_TABLE t0 WHERE (t2.CUST_ID = t0.ID)

There is duplicate tables in the generated sql which is caused by issue 197.

Thanks.

Jielin