cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Gentry <>
Subject To Dep PK bug?
Date Fri, 05 Nov 2010 12:57:08 GMT
I kept getting an optimistic locking exception where my PK got nulled
out, so I set up a simple test case:

User Table:
id bigint
name varchar(50)
username varchar(20)

Avatar Table:
avatarImage blob(100000)
id biginit

User is the master table, Avatar the dependent, To Dep PK checked
going from User to Avatar to map the User PK to the Avatar.


        DataContext dataContext = DataContext.createDataContext();

        User admin = dataContext.newObject(User.class);



        admin.setName("The Administrator");


The second commitChanges fails with the following SQL:

INFO: INSERT INTO Users (id, name, username) VALUES (?, ?, ?)
INFO: [bind: 1->id:200, 2->name:'Administrator', 3->username:'admin']
INFO: UPDATE Users SET name = ? WHERE id IS NULL AND name = ? AND username = ?
INFO: [bind: 1->name:'The Administrator', 2->id:NULL,
3->name:'Administrator', 4->username:'admin']
org.apache.cayenne.access.OptimisticLockException: [v.3.0 Apr 30 2010
11:29:33] Optimistic Lock Failure, SQL: [UPDATE Users SET name = ?
WHERE id IS NULL AND name = ? AND username = ?], WHERE clause
bindings: [id=NULL, username='admin', name='Administrator']

The ID gets set to null which is clearly wrong.


View raw message