]
Diego Pires Plentz resolved HHH-1296.
-------------------------------------
Assignee: Diego Pires Plentz
Resolution: Duplicate
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
Issue Type: Bug
Components: core
Affects 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
Assignee: Diego Pires Plentz
Priority: Critical
Attachments: listupdate_patch.txt, listupdate_patch.txt, 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: