Hi,
I have a onetomany bidirectional
relationship between Customer and Order beans(each customer has multiple
orders).
I get an unexpected sql queries generated from
a JPQL query in Eclipselink 1.1.1 for MySQL db only.
My JPQL query,
update orders_bidirectional o set o.name = 'ravi'
where o.customer.id = :custid
SQL query generated for Oracle db,
UPDATE orders_bidirectional SET NAME = ? WHERE
EXISTS(SELECT t1.ID FROM customer_bidirectional t0, orders_bidirectional t1
WHERE ((t0.ID = ?) AND (t0.ID = t1.CUSTOMER_ID)) AND t1.ID =
orders_bidirectional.ID)
SQL queries generated for MySQL db,
CREATE TEMPORARY TABLE IF NOT EXISTS
TL_orders_bidirectional LIKE orders_bidirectional INSERT INTO
TL_orders_bidirectional (ID, NAME) SELECT t1.ID, ? FROM customer_bidirectional
t0, orders_bidirectional t1 WHERE ((t0.ID = ?) AND (t0.ID =
t1.CUSTOMER_ID)) UPDATE orders_bidirectional, TL_orders_bidirectional SET
orders_bidirectional.NAME = TL_orders_bidirectional.NAME WHERE
orders_bidirectional.ID = TL_orders_bidirectional.ID DELETE FROM
TL_orders_bidirectional
Like for other databases, is it possibe to use
update all query for MySQL with a single sql query. Generating so many sql
queries is
scalability issue for us.
regards,
ravi.
|