2013-10-18 26 views
0

我正在使用jboss-as-7.1.1.Final, hibernate 4.0和Rest-easy框架。問題是在DB中立即保存記錄後立即發起更新調用以更新/插入持久對象的子實體。儘管DB中存在記錄,但Hibernate仍會拋出NoResultException。

所以我使用em.find(record.class, primary key(long))方法來獲取持久化父記錄並檢查null。如果父記錄不爲空,則插入/更新到子記錄中。

它在本地工作正常,但是當我進行負載測試時,即使父對象存在於數據庫中,父記錄仍然爲空。任何想法 ?

下面是代碼快照:

//persisting record in one API call 
entityManager.persist(record); 

//Finding record 
    Record record = entityManager.find(Record.class, recordId); 
     if (record != null) { 
      //Fetch child entity 
      Hibernate.initialize(record.getRecordsettings()); 
      Hibernate.initialize(record.getRecordstate()); 
     } 
     return record; 
    } 

我與em.refresh()試過,但它不解決問題。

+0

請正確地發佈您的快照 –

+0

@AdityaVikas更新。 – Ranga

+0

所有這些發生在同一個TX? –

回答

0

在一個事務中持久化對象和更新發生在另一個事務中 。兩次交易均以 毫秒的間隔分數發生。僅對於某些記錄這個問題是提高

這可能是因爲創建&更新之間的最小間隔來發生。 如果可以,請嘗試在兩個單獨的線程上創建和更新。並加入更新線程以確保它等待創建線程完成。回覆你的結果。

同時,請參閱這篇文章,請檢查您是否更新您的火災插入完成前:

How to log the response time for insert & update query in Hibernate

附註>還沒有評論權限還,所以張貼作爲一個答案。

相關問題