]
Jeff Zarnett commented on HHH-1296:
-----------------------------------
Nigel has correctly and fully outlined the problem, so it is not necessary for me to
repeat it. I have made the change that removes the unique constraint and leads to success
in the attached test cases.
Two files are now attached to this issue. The larger of the two is unicode and the smaller
is ANSI, but their contents are the same. They contain the (quite small) diff to resolve
the issue.
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
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: