[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1296?page=all ]
Tobias Riege updated HHH-1296:
------------------------------
Attachment: listupdate_testcase.zip
Created two test cases failing for MySQL 5.0 and HSQL. The first case removes an element
from the object's list, the second tries to add the same element to two different
objects' lists. Both fail due to the unique constraint on the key of the link table as
noticed by Nigel.
Non lazy loaded List updates done in wrong order, cause exception
-----------------------------------------------------------------
Key: HHH-1296
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1296
Project: Hibernate3
Type: Bug
Components: core
Versions: 3.0.5
Environment: Hibernate 3.0.5 - any database (checked postgres 7/8, mysql 4 & 5, db2
v8)
NOT using lazy loading - the tx's are wrapped by session beans, so lazy loading is
not allowed.
Reporter: David Birch
Priority: Critical
Attachments: listupdate_testcase.zip
The logic behind list updates is not quite right, nor was it in v2 (only now i have a DBA
who won't let up...)
The scenario is:
a bean with list property, and the list has a number of items in it (say 4, index 0-3),
an item is then removed (say item at index 2), and the bean is requested to be saved.
From what i can see in the SQL traces, the same statements are issues whe lazy loading is
on or off, they are:
[18/12/05 19:48:50:766 EST] 00000036 SystemOut O Hibernate: delete from
TGE_CLIENT_POLICY where CLIENT_ID=? and POSITION=?
[18/12/05 19:48:50:766 EST] 00000036 SystemOut O Hibernate: update TGE_CLIENT_POLICY
set POLICY_NK=? where CLIENT_ID=? and POSITION=?
So, i can only assume (as when this fails, the row with index 1 above the removed row is
nuked!), hibernate removes the item at index 3, and then copies the value of the item at
index 3 onto the row for item at index 2. Fair enough but...
When i have lazy loading off, i get DB exceptions like
Duplicate key or integrity constraint violation message from server: "Duplicate
entry '1-999999' for key 1"
so, there is some nasty in there, which is not updating the correct row - this has
happened since 2.1.8 that i know of :(
i will try & look @ the source, but won't get a chance until after xmas...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira