0
我有這樣定義的Customer類:JPA,避免加載實體每次協會走過
@Entity
public class Customer {
//...
@OneToMany(mappedBy = "customer", orphanRemoval = true, FetchType.EAGER)
@MapKey(name = "name")
private Map<String, Operation> operationMap = new HashMap<String, Operation>();
我的GUI應用程序通過一個EJB檢索該客戶,然後更新客戶和/或它的操作。問題是,無論何時遍歷operationMap
集合,都會創建Operation
實體的新代理,這會爲GUI組件創建問題。有些仍然綁定到舊的代理,而有些則綁定到新的代理。
你打算如何解決這個問題?嘗試遍歷operationMap
只有一次?有沒有辦法限制新代理的創建?
我正在使用EclipseLink JPA(Glassfish AS)。
我遠離JPA的專家,但不是它應該只存在任何實體的副本(如果它從多個線程中加載好幾次,那麼ORM緩存應該返回相同的對象)? – SJuan76 2012-03-24 21:13:36
謝謝,你實際上指出我正確的方式。一種偶然調用的方法即使在初始頁面加載之後也提取了Customer實體,因此每次創建新的分離的Customer實體。 – Dario 2012-03-24 21:24:09