休眠:java.sql.SQLException:事务回滚后尝试继续工作

Posted

技术标签:

【中文标题】休眠:java.sql.SQLException:事务回滚后尝试继续工作【英文标题】:Hibernate: java.sql.SQLException: Attempt to continue working after transaction rolledback 【发布时间】:2012-03-01 09:12:34 【问题描述】:

在 Hibernate 中,从数据库中获取 OBJECT 时发生以下错误。你们能告诉我在什么情况下会发生这个错误吗? 代码中没有任何变化。同一段代码已成功运行多年。

此异常的可能原因是什么?欢迎任何建议。非常感谢:-)

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)

【问题讨论】:

我认为问题出在服务器端... 【参考方案1】:

我猜,代码(服务器端)总是有一个简单隐藏的错误,因为从来没有事务回滚。

首先,需要检查事务现在失败的原因(数据库完整性问题或架构已更改?),接下来,必须添加一个模拟回滚的测试并修复服务器代码。

【讨论】:

以上是关于休眠:java.sql.SQLException:事务回滚后尝试继续工作的主要内容,如果未能解决你的问题,请参考以下文章

java.sql.SQLException:getShort() 的值无效 - ''

java.sql.SQLException: SQL 语句在 org.hsqldb.jdbc.JDBCUtil.sqlException 处关闭

Oracle DB:java.sql.SQLException:关闭连接

Cause: java.sql.SQLException: 请求的转换无效 ; uncategorized SQLException for SQL []; SQL state [99999]; er

java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 发生错误

Java:Sqlexception:位置不支持的 SQL92 令牌:178