[英]jpa : how to use jpa in java se development
我正在使用java的java se項目進行工作,以使用數據庫持久化數據。
現在,我為每個數據庫操作獲取一個新的實體管理器,並在函數調用結束時將其關閉。 喜歡
public void save(T entity){
em = getNewEntity();
em.persisty(entity);
em.close;
}
但是很難處理多對多關系。 例如
我有一個與B實體有多對多關系的A實體。 他們有CascadeType.MERGE。
一旦我創建A,我就創建B,並運行多個線程來為A和B生成信息。但是有時B保持A的過時,如果我合並B則A的數據將被清除。
例如 。 A是音樂,B是音樂專輯,因此一個B將具有A列表。 另一個線程將讀取音樂元數據並獲取音樂標簽信息並更新A,當在FS中找到新的A時,B將更新。
由於實體管理器已關閉,因此B的A列表中的實體已過期,這意味着當A更新自身時,B不知道A更新了。 合並B后,jpa將幫助我們使用B的A列表中的實體合並A。
為了解決此問題,我決定使用一個實體管理器,並將所有數據庫操作放到一個線程中。 然后出現了新問題。
當交易處於活動狀態並且應該為實體之間的交易打開時
transaction.begin();
....
transaction.end();
但是,有許多線程正在運行,這些線程也可能會更改實體。
我的問題是:如何在Java SE開發中使用jpa? 謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.