-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Removing a failed update from the scheduled updates
PostPosted: Mon Mar 21, 2005 2:59 pm 
Newbie

Joined: Mon Mar 21, 2005 1:46 pm
Posts: 6
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


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 22, 2005 3:42 pm 
Newbie

Joined: Mon Mar 21, 2005 1:46 pm
Posts: 6
Further update

I have tried the same unit test with hibernate 2.1.8 with the same results.

Am I missing something obvious here ?

Thanks

Jean


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.