2016-06-17 2 views
0

도움이 필요합니다.Jboss Seam : 트랜잭션 롤백 후 세션을 복구 할 수 없습니다.

저는 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) failed to lazily initialize a collection of role: com.test.web.entity.Promotions.Results, no session or session was closed org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.test.web.entity.Promotions.Results, no session or session was closed

선택 쿼리 새로 고침의 결과()로 발사됩니다 때

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 > cannot proceed STATUS_MARKED_ROLLBACK; - nested throwable: (javax.transaction.RollbackException: Transaction TransactionImple < ac, BasicAction: a2691f4:fb24:5763b0a4:b4 status: ActionStatus.ABORT_ONLY > cannot proceed 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: could not inspect JDBC autocommit mode javax.faces.el.EvaluationException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode

나는 '속성-service.xml'에서 아래의 매개 변수를 설정하지만, 어떤 차이하지 않았다 :

'org.jboss.resource.connectionmanager.TxConnectionManager.ignoreStatusMarkedForRollback=true'

을 'persistence.xml'에서, 나는 h 아래의 속성을 집결지 :

property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>

property name="hibernate.connection.release_mode" value="after_transaction" />

당신은 문제가 여기에 무엇을 제안 시겠어요와 나는 특정 회사의 롤백을 게시하여 어떻게 시작할 수 있나요? '롤백'작업으로 인해 세션이 닫히고 같은 것을 다시 찾을 수있는 방법이 없습니다.

감사합니다 !!! 이 예외를 캐치하지 않는 이유

답변

0

는 현재 페이지로 사용자를 리디렉션

try{ 

    } 
    catch(ConstraintViolationException cve) 
    { 
     FacesManager.instance().redirect(Pages.getCurrentViewId(), parameters, includeConversationId, includePageParameters); 
    } 
관련 문제