In fact switching back to the legacy join syntax was already accomplished for OpenBase (see OpenBaseJoinStack) :

https://issues.apache.org/jira/browse/CAY-1084

So I just cloned it for Oracle8:

https://issues.apache.org/jira/browse/CAY-1207

This code is committed, I just don't have a way to test it. Bryan, you can build Cayenne from trunk or grab it from Hudson CI once it rebuilds my latest changes:

http://hudson.zones.apache.org/hudson/view/Cayenne/job/Cayenne-trunk/org.apache.cayenne$cayenne-server/

Andrus


On Apr 13, 2009, at 7:58 PM, Bryan Lewis wrote:

Thanks.  About what I thought.  Just wanted to check.


On Mon, Apr 13, 2009 at 12:41 PM, Mike Kienenberger <[email protected] >wrote:

By the way, when I say "could be added back in", I am not volunteering
to do the work, only letting you know that you could probably figure
out how to submit patches to do this by looking at Cayenne 2 code and
porting to Cayenne 3.

On Mon, Apr 13, 2009 at 12:40 PM, Mike Kienenberger <[email protected] >
wrote:
Yes, you need Oracle 9 before that syntax is understood.

Oracle 8 only understands select * from t1, t2 where t1.x = t2.x.  I
suppose the old oracle inner join support could be added back in.

Outer join support is even worse for 8, and not implementable for all
practical purposes.


On Mon, Apr 13, 2009 at 12:32 PM, Bryan Lewis <[email protected]>
wrote:
We have some apps running on an Oracle 8i database.  Wow, almost 10
years
old.  Cayenne 2 has been working great.  When I tried updating to
Cayenne 3,
I got a syntax error in a particular bit of SQL with a JOIN. This isn't
an
urgent problem for us but I thought I'd mention it.

We have an Employee entity with a many-to-many relationship to Role.
With a
join table called Employee_Role.

  List roles = employee.getRoles();
  Role role = roles.get(0);

The first fetch works but resolving the first element generates this
SQL:

SELECT DISTINCT t0.* FROM ROLE t0
  JOIN EMPLOYEE_ROLE t1 ON
  (t0.ROLE_ID = t1.ROLE_ID)
  WHERE t1.EMPLOYEE_ID = ? [bind: 1:312]

Oracle 8i doesn't understand that JOIN...ON syntax and throws:

  java.sql.SQLException: ORA-00933: SQL command not properly ended

The same code works fine on PostgreSQL with almost the same generated
SQL.




Reply via email to