我需要一些帮助。
我正在使用 Jboss 5.1 和 Seam 2.2,Hibernate。在其中一个 UI 页面中,在更新操作期间存在数据库约束违规并且事务被回滚。在此回滚之后,如果我尝试使用该实体,我会收到以下错误:
2016-06-17 10:38:32,815 错误 [org.hibernate.LazyInitializationException] (http-127.0.0.1-8091-2) 无法延迟初始化角色集合:com.test.web.entity.Promotions.Results,没有会话或会话被关闭 org.hibernate.LazyInitializationException:未能延迟初始化角色集合:com.test.web.entity.Promotions.Results,没有会话或会话被关闭
为了重新附加实体,我在上述步骤之前调用了 refresh() 方法,并在由于 refresh() 触发选择查询时得到以下错误:
2016-06-17 10:13:32,710 错误 [org.hibernate.util.JDBCExceptionReporter] (http-127.0.0.1-8091-3) 事务 TransactionImple < ac,BasicAction:a2691f4:fb24:5763b0a4:b4 状态:ActionStatus.ABORT_ONLY > 无法继续 STATUS_MARKED_ROLLBACK;- 嵌套 throwable: (javax.transaction.RollbackException: Transaction TransactionImple < ac, BasicAction: a2691f4:fb24:5763b0a4:b4 status: ActionStatus.ABORT_ONLY > 无法继续 STATUS_MARKED_ROLLBACK)
2016-06-17 10:13:32,710 严重 [javax.enterprise.resource.webcontainer.jsf.application] (http-127.0.0.1-8091-3) javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: 可以不检查 JDBC 自动提交模式 javax.faces.el.EvaluationException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: 无法检查 JDBC 自动提交模式
我在“properties-service.xml”中设置了以下参数,但没有任何区别:
'org.jboss.resource.connectionmanager.TxConnectionManager.ignoreStatusMarkedForRollback=true'
在“persistence.xml”中,我有以下属性:
属性名称="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
属性名称="hibernate.connection.release_mode" 值="after_transaction" />
您能否建议这里有什么问题以及我如何开始使用回滚后的实体?似乎“回滚”操作正在关闭会话,我没有找到任何方法来恢复它。
谢谢 !!!