2016-06-17 22 views
0

私は助けが必要です。Jboss Seam:トランザクションのロールバック後にセッションを回復できません

私はJboss 5.1をSeam 2.2、Hibernateで使用しています。いずれかのUIページで、更新アクション中にデータベース制約違反があり、トランザクションがロールバックされます。私は、エンティティを使用しようとすると、このロールバックした後、私は次のエラーを取得:、私は上記のステップの前にrefresh()メソッドと呼ばれ、以下のエラーを得たエンティティを再取り付けるために

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); 
    } 
関連する問題