[hibernate-issues] [Hibernate-JIRA] Updated: (HHH-1296) Non lazy loaded List updates done in wrong order, cause exception

Tobias Riege (JIRA) noreply at atlassian.com
Mon Mar 5 05:31:38 EST 2007


     [ 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.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira




More information about the hibernate-issues mailing list