このコードを見てください。 Persistは、Candidateと呼ばれるテーブルで動作し、VerifyLinkという別のテーブルでは動作しません。一方、hibernateは、ログファイルに永続化されていることを示します。 以下のログを見てください。最初に「insert into candidate」というクエリが表示されますが、2番目のケースではクエリが表示されません。なにが問題ですか ?hibernate commit:ログでコミットされたことを示しますが、実際にはそれはありません
protected final void doInTransaction(PersistenceActionWithoutResult action) throws EntityAccessorException {
EntityManager em = emf.createEntityManager();
try {
int status = 0;
status = userTransaction.getStatus();
if (Status.STATUS_ACTIVE != status){
count.incrementAndGet();
userTransaction.begin();
}
action.execute(em);
System.out.println(em);
status = userTransaction.getStatus();
System.out.println("status : " + status);
if (Status.STATUS_ACTIVE == status) {
if (0 == count.decrementAndGet()) {
userTransaction.commit();
System.out.println("committed : ");
}
}
} catch (Exception e) {
try {
userTransaction.rollback();
System.out.println("rolled back :");
e.printStackTrace();
} catch (Exception ex) {
Logger.getLogger(AbstractEntityAccessor.class.getName()).log(Level.SEVERE, null, ex);
}
throw new EntityAccessorException(e);
} finally {
System.out.println("transaction close :");
em.close();
}
}
私が初めて
のために何かをコミット[#| 2011-07-25T12:38:+ 0530 40.020 | INFO | glassfish3.0.1 | javax.enterprise.system.std.com。 ##| 2011-07-25T12:38:40.021+ |##| 2011-07-25T12: 0530 | INFO | glassfish3.0.1 | javax.enterprise.system.std.com.sun.enterprise.v3.services.impl | _ThreadID = 61; _ThreadName = Thread-1; | status:0 |#]
[ #| 2011-07-25 T12:38:40.093 + 0530 | INFO | glassfish3.0.1 | javax.enterprise.system.std.com.sun.enterprise.v3.services.impl | _ThreadID = 61; _ThreadName =スレッド-1; |休止状態:候補者に挿入(コメント、CREATION_DATE、currentCompany、current_ctc、CV、cv_name、DOB、EMAIL_ID、email_id_verified、expected_ctc、FIRST_NAME、LAST_NAME、場所、モバイル、notice_period、パスワード、性別、upadte_date、years_of_exp、cand_id)の値(?、?、?、? |#)
[#| 2011-07-25T12:38](#、#、#、#、#、#、# :40.164 + 0530 | INFO | glassfish3.0.1 | javax.enterprise.system.std.com.sun.enterprise.v3.services.impl | _ThreadID = 61; _ThreadName = Thread-1; |コミット:|#]
[#| 2011-07-25T12:38:40.165 + 0530 |情報| glassfish3.0.1 | javax.enterprise.system.std.com.sun.enterprise.v3.services.impl | _ThreadID = 61; _ThreadName = Thread-1; |トランザクションクローズ:|#]
[#| 2011-07-25T12:38:47.158 + 0530 | INFO | glassfish3.0.1 | javax.enterprise.system.std.com .sun.enterprise.v3.services.impl | _ThreadID = 61; _ThreadName = Thread-1; | [email protected] |#]
[#| 2011-07-25T12:38:47.159 +0530 | INFO | glassfish3.0.1 | javax.enterprise.system.std.com.sun.enterprise.v3.services.impl | _ThreadID = 61; _ThreadName = Thread-1; | status:0 |#]
[#| 2011-07-25T12:38:47.159 + 0530 | INFO | glassfish3.0.1 | javax.enterprise.system.std.com.sun.enterprise.v3.services.impl | _ThreadID = 61; _ThreadName = Thread-1 ; | committed:|#]
[#| 2011-07-25T12:38:47.159 + 0530 | INFO | glassfish3.0.1 | javax.enterprise.system.std.com.sun.enterprise.v3.services.impl | _ThreadID = 61; _ThreadName =スレッド-1; |近い取引:|#]