2012-03-01 15 views
0

データベースからOBJECTをフェッチしている間にHibernateでエラーが発生しました。あなたは私にこのエラーが発生する条件を教えてください。 コード内で何も変更されていません。同じコードが何年も成功しています。Hibernate:トランザクション・ロールバック後に作業を続行しようとしました。

この例外の考えられる原因は何ですか?どんな提案も大歓迎です。おかげで私は推測

java.sql.SQLException: Attempt to continue working after transaction rolledback ! 
at com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.java:1376) 
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.beginTransactionIfNecessary(WSJdbcConnection.java:701) 
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:2084) 
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:2039) 
at net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:257) 
at net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:232) 
at net.sf.hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java:65) 
at net.sf.hibernate.loader.Loader.prepareQueryStatement(Loader.java:779) 
at net.sf.hibernate.loader.Loader.doQuery(Loader.java:265) 
at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133) 
at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:911) 
at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:931) 
at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:59) 
at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:51) 
at net.sf.hibernate.persister.EntityPersister.load(EntityPersister.java:419) 
at net.sf.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:2117) 
at net.sf.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1991) 
at net.sf.hibernate.impl.SessionImpl.get(SessionImpl.java:1927) 
+0

私は問題がサーバー側であると思います... –

答えて

0

:-)多くは、コード(サーバー側)は常にトランザクションのロールバックがあったことがないので、単純に、隠されたバグがありました。

まず最初に、トランザクションが現在失敗している(データベースの整合性の問題またはスキーマが変更された)理由を確認し、次にロールバックをシミュレートしてサーバーコードを修正するテストを追加する必要があります。

関連する問題