我需要一些帮助。
我正在使用Jboss 5.1和Seam 2.2,Hibernate。在其中一个UI页面中,在更新操作期间存在数据库约束违规并且回滚事务。在此回滚之后,如果我尝试使用该实体,则会收到以下错误:
2016-06-17 10:38:32,815 ERROR [org.hibernate.LazyInitializationException](http-127.0.0.1-8091-2)无法懒洋洋地初始化角色集合:com.test.web.entity.Promotions 。结果,没有会议或会议结束 org.hibernate.LazyInitializationException:懒得初始化角色集合:com.test.web.entity.Promotions.Results,没有关闭会话或会话
为了重新附加实体,我在上面的步骤之前调用了refresh()方法,并且当select()刷新因为refresh()而被触发时出现了以下错误:
2016-06-17 10:13:32,710 ERROR [org.hibernate.util.JDBCExceptionReporter](http-127.0.0.1-8091-3)Transaction TransactionImple< ac,BasicAction:a2691f4:fb24:5763b0a4:b4 status: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 SEVERE [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'中,我有以下属性:
property name =“hibernate.transaction.manager_lookup_class”value =“org.hibernate.transaction.JBossTransactionManagerLookup”/>
property name =“hibernate.connection.release_mode”value =“after_transaction”/>
你能否在这里建议问题是什么?如何开始使用实体回滚后?似乎'回滚'动作正在关闭会话,我找不到任何重新获得相同的方法。
谢谢!
答案 0 :(得分:0)
为什么不抓住此异常,然后将用户重定向到当前页面
try{
}
catch(ConstraintViolationException cve)
{
FacesManager.instance().redirect(Pages.getCurrentViewId(), parameters, includeConversationId, includePageParameters);
}