Community
Participate
Working Groups
Currently on most databases, UpdateAll/DeleteAll queries use a query that includes a subselect to execute for objects that have multiple tables. The subselect references a table in the outer select. In most databases this is allowed, but on MySQL and Symfoware, this is disallowed. It should be possible to create this subselect without the reference to the outer query. To recreate, run a DeleteAll query for Employee on MySQL Fixing this issue will allow more queries to run without temp tables on MySQL and allow most DeleteAll/UpdateAll queries for multi-table objects to run on Symfoware.
CC'ing myself. When there is only one PK required to link the tables, the query could be rewritten as follows: DELETE FROM SALARY WHERE ID = (SELECT t0.ID FROM EMPLOYEE t0 WHERE (t0.ID > 0)) I haven't been able to come up with something similar in the case of multi-column PKs. Another solution might be to create a stored procedure on the fly to do this using multiple cursors.
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink