Hello all,
I encounter an unexpected behaviour from hibernate and would like to know how to bypass it.
Basically my code does this:
session.find() an object from the database.
Modifiy the object.
Call
session.saveOrUpdate() on the object.
call
session.refresh() on the object.
session.find() the next object (same class, different id) and so on.
Now when the update goes smoothly all is well, but the modifications I do to the object sometime violate a unicity constraint in the database.
When this occurs, the saveOrUpdate fails but that's alright, and anticipated for. The refresh occurs normally, resetting the values of my object (which is what I want), but then when my app tries to load the next object, it all comes to a grinding halt.
The find on the next object triggers a flush(), during the flush the previously failed update is attempted again, because it is still a scheduledUpdate in the updates arraylist of the session.
How should I tell hibernate that I want him to drop the failed scheduledUpdate (I tried transactions it won't change a thing) and go on?
here comes the form, including a full testcase ( it doesn't use the transactions but it should be easy to add )
The testcase uses sqlite, but I was able to observe the same behaviour on oracle.
I'd rather not have to change the hibernate version I am using if it can be avoided.
Thanks.
Jean
Hibernate version: Hibernate 2.1.6
Mapping documents:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping>
<class name="fr.persist.data" table="data" lazy="true">
<id name="id" type="java.lang.Long" column="ID">
<generator class="native">
</generator>
</id>
<property name="name" type="java.lang.String" not-null="true"/>
<property name="value" type="java.lang.Long" not-null="true"/>
</class>
</hibernate-mapping>
SQL query to create the table:Code:
CREATE TABLE data(
id INTEGER AUTOINCREMENT PRIMARY KEY,
name VARCHAR(50),
value INTEGER UNIQUE
);
The test case I use (fr.persist.data is a squeleton class with only the default constructor, the getters and setters):Code:
package fr.test;
import fr.persist.data;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.MappingException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;
import net.sf.hibernate.type.LongType;
import junit.framework.TestCase;
public class Test extends TestCase {
private Session session;
private SessionFactory factory;
public Test() {
super();
try {
factory =new Configuration().configure().buildSessionFactory();
} catch (MappingException e) {
e.printStackTrace();
} catch (HibernateException e) {
e.printStackTrace();
}
}
protected void setUp() throws Exception {
// TODO Auto-generated method stub
super.setUp();
session=factory.openSession();
}
protected void tearDown() throws Exception {
session.close();
super.tearDown();
}
public void testReload(){
try {
data row1=(data)session.load(data.class, new Long("1"));
assertNotNull(row1);
assertEquals("a",row1.getName());
data row2=(data)session.load(data.class, new Long("2"));
assertEquals("b",row2.getName());
assertEquals(new Long("2"),row2.getValue() );
row2.setValue(new Long(1));
try {
session.saveOrUpdate(row2);
session.flush();
} catch (HibernateException e1) {
System.out.println("Exception caught !! ok");
}
session.refresh(row2);
assertEquals("b",row2.getName());
assertEquals(new Long("2"),row2.getValue() );
System.out.println("refresh passed ok");
session.evict(row2);
data row3=(data)session.find("from data where id=?", new Long(3), new LongType());
assertEquals("b",row2.getName());
assertEquals(new Long("2"),row2.getValue() );
assertEquals("c",row3.getName());
assertEquals(new Long("3"),row3.getValue() );
} catch (NumberFormatException e) {
fail();
e.printStackTrace();
} catch (HibernateException e) {
fail();
e.printStackTrace();
}
}
}
Full stack trace of any exception that occurs:Code:
18:39:44,142 DEBUG JDBCExceptionReporter:36 - SQL Exception
java.sql.SQLException: SQLite.Exception: column value is not unique
at SQLite.JDBC2x.JDBCStatement.executeQuery(JDBCStatement.java:121)
at SQLite.JDBC2x.JDBCPreparedStatement.executeUpdate(JDBCPreparedStatement.java:75)
at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:684)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:642)
at net.sf.hibernate.impl.ScheduledUpdate.execute(ScheduledUpdate.java:52)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2418)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2372)
at net.sf.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1811)
at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1568)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1533)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1517)
at fr.test.Test.testReload(Test.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)
18:39:44,142 WARN JDBCExceptionReporter:38 - SQL Error: 0, SQLState: null
18:39:44,152 ERROR JDBCExceptionReporter:46 - SQLite.Exception: column value is not unique
18:39:44,152 ERROR JDBCExceptionReporter:38 - could not update: [fr.persist.data#2]
java.sql.SQLException: SQLite.Exception: column value is not unique
at SQLite.JDBC2x.JDBCStatement.executeQuery(JDBCStatement.java:121)
at SQLite.JDBC2x.JDBCPreparedStatement.executeUpdate(JDBCPreparedStatement.java:75)
at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:684)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:642)
at net.sf.hibernate.impl.ScheduledUpdate.execute(ScheduledUpdate.java:52)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2418)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2372)
at net.sf.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1811)
at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1568)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1533)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1517)
at fr.test.Test.testReload(Test.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)
18:39:44,152 ERROR SessionImpl:2379 - Could not synchronize database state with session
net.sf.hibernate.JDBCException: could not update: [fr.persist.data#2]
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:707)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:642)
at net.sf.hibernate.impl.ScheduledUpdate.execute(ScheduledUpdate.java:52)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2418)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2372)
at net.sf.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1811)
at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1568)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1533)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1517)
at fr.test.Test.testReload(Test.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)
Caused by: java.sql.SQLException: SQLite.Exception: column value is not unique
at SQLite.JDBC2x.JDBCStatement.executeQuery(JDBCStatement.java:121)
at SQLite.JDBC2x.JDBCPreparedStatement.executeUpdate(JDBCPreparedStatement.java:75)
at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:684)
... 25 more
Name and version of the database you are using:sqlite 2.8.15
The generated SQL (show_sql=true):it is provided in the log excerpt which follows.
Debug level Hibernate log excerpt:Code:
19:34:01,296 DEBUG Test:54 - Exception caught !! ok
19:34:01,296 DEBUG SessionImpl:2171 - refreshing [fr.persist.data#2]
19:34:01,296 DEBUG EntityPersister:416 - Materializing entity: [fr.persist.data#2]
19:34:01,296 DEBUG BatcherImpl:200 - about to open: 0 open PreparedStatements, 0 open ResultSets
19:34:01,296 DEBUG SQL:226 - select data0_.ID as ID0_, data0_.name as name0_, data0_.value as value0_ from data data0_ where data0_.ID=?
Hibernate: select data0_.ID as ID0_, data0_.name as name0_, data0_.value as value0_ from data data0_ where data0_.ID=?
19:34:01,296 DEBUG BatcherImpl:249 - preparing statement
19:34:01,296 DEBUG LongType:46 - binding '2' to parameter: 1
19:34:01,296 DEBUG Loader:277 - processing result set
19:34:01,296 DEBUG Loader:480 - result row: 2
19:34:01,296 DEBUG Loader:611 - Initializing object from ResultSet: 2
19:34:01,296 DEBUG Loader:680 - Hydrating entity: fr.persist.data#2
19:34:01,296 DEBUG StringType:68 - returning 'b' as column: name0_
19:34:01,296 DEBUG LongType:68 - returning '2' as column: value0_
19:34:01,296 DEBUG Loader:294 - done processing result set (1 rows)
19:34:01,296 DEBUG BatcherImpl:207 - done closing: 0 open PreparedStatements, 0 open ResultSets
19:34:01,326 DEBUG BatcherImpl:269 - closing statement
19:34:01,326 DEBUG Loader:314 - total objects hydrated: 1
19:34:01,326 DEBUG SessionImpl:2202 - resolving associations for [fr.persist.data#2]
19:34:01,336 DEBUG SessionImpl:2226 - done materializing entity [fr.persist.data#2]
19:34:01,336 DEBUG SessionImpl:3116 - initializing non-lazy collections
19:34:01,336 DEBUG Test:59 - refresh passed ok
19:34:01,336 DEBUG SessionImpl:3676 - evicting [fr.persist.data]
19:34:01,336 DEBUG SessionImpl:1527 - find: from data where id=?
19:34:01,336 DEBUG QueryParameters:109 - parameters: [3]
19:34:01,356 DEBUG QueryTranslator:147 - compiling query
19:34:01,376 DEBUG SessionImpl:2246 - flushing session
19:34:01,376 DEBUG SessionImpl:2439 - Flushing entities and processing referenced collections
19:34:01,376 DEBUG SessionImpl:2780 - Processing unreferenced collections
19:34:01,376 DEBUG SessionImpl:2794 - Scheduling collection removes/(re)creates/updates
19:34:01,376 DEBUG SessionImpl:2270 - Flushed: 0 insertions, 1 updates, 0 deletions to 1 objects
19:34:01,376 DEBUG SessionImpl:2275 - Flushed: 0 (re)creations, 0 updates, 0 removals to 0 collections
19:34:01,376 DEBUG Printer:75 - listing entities:
19:34:01,376 DEBUG Printer:82 - fr.persist.data{value=1, name=a, id=1}
19:34:01,376 DEBUG SessionImpl:2300 - changes must be flushed to space: data
19:34:01,376 DEBUG SessionImpl:1809 - Need to execute flush
19:34:01,376 DEBUG SessionImpl:2359 - executing flush
19:34:01,386 DEBUG EntityPersister:648 - Updating entity: [fr.persist.data#2]
19:34:01,386 DEBUG BatcherImpl:200 - about to open: 0 open PreparedStatements, 0 open ResultSets
19:34:01,386 DEBUG SQL:226 - update data set name=?, value=? where ID=?
Hibernate: update data set name=?, value=? where ID=?
19:34:01,386 DEBUG BatcherImpl:249 - preparing statement
19:34:01,386 DEBUG EntityPersister:388 - Dehydrating entity: [fr.persist.data#2]
19:34:01,386 DEBUG StringType:46 - binding 'b' to parameter: 1
19:34:01,386 DEBUG LongType:46 - binding '1' to parameter: 2
19:34:01,386 DEBUG LongType:46 - binding '2' to parameter: 3
19:34:01,396 DEBUG BatcherImpl:207 - done closing: 0 open PreparedStatements, 0 open ResultSets
19:34:01,396 DEBUG BatcherImpl:269 - closing statement
19:34:01,396 DEBUG JDBCExceptionReporter:36 - SQL Exception
java.sql.SQLException: SQLite.Exception: column value is not unique
at SQLite.JDBC2x.JDBCStatement.executeQuery(JDBCStatement.java:121)
at SQLite.JDBC2x.JDBCPreparedStatement.executeUpdate(JDBCPreparedStatement.java:75)
at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:684)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:642)
at net.sf.hibernate.impl.ScheduledUpdate.execute(ScheduledUpdate.java:52)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2418)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2372)
at net.sf.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1811)
at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1568)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1533)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1517)
at fr.test.Test.testReload(Test.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)
19:34:01,396 WARN JDBCExceptionReporter:38 - SQL Error: 0, SQLState: null
19:34:01,396 ERROR JDBCExceptionReporter:46 - SQLite.Exception: column value is not unique
19:34:01,396 ERROR JDBCExceptionReporter:38 - could not update: [fr.persist.data#2]
java.sql.SQLException: SQLite.Exception: column value is not unique
at SQLite.JDBC2x.JDBCStatement.executeQuery(JDBCStatement.java:121)
at SQLite.JDBC2x.JDBCPreparedStatement.executeUpdate(JDBCPreparedStatement.java:75)
at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:684)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:642)
at net.sf.hibernate.impl.ScheduledUpdate.execute(ScheduledUpdate.java:52)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2418)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2372)
at net.sf.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1811)
at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1568)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1533)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1517)
at fr.test.Test.testReload(Test.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)
19:34:01,396 ERROR SessionImpl:2379 - Could not synchronize database state with session
net.sf.hibernate.JDBCException: could not update: [fr.persist.data#2]
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:707)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:642)
at net.sf.hibernate.impl.ScheduledUpdate.execute(ScheduledUpdate.java:52)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2418)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2372)
at net.sf.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1811)
at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1568)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1533)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1521)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1517)
at fr.test.Test.testReload(Test.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)
Caused by: java.sql.SQLException: SQLite.Exception: column value is not unique
at SQLite.JDBC2x.JDBCStatement.executeQuery(JDBCStatement.java:121)
at SQLite.JDBC2x.JDBCPreparedStatement.executeUpdate(JDBCPreparedStatement.java:75)
at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:684)
... 25 more
19:34:01,396 DEBUG SessionImpl:573 - closing session
19:34:01,396 DEBUG SessionImpl:3336 - disconnecting session
19:34:01,396 DEBUG DriverManagerConnectionProvider:120 - returning connection to pool, pool size: 1
19:34:01,396 DEBUG SessionImpl:585 - transaction completion
Read the rules before posting!
http://www.hibernate.org/ForumMailingli ... AskForHelp