簡體   English   中英

JPA:查詢不獲取最新數據

[英]JPA: query not fetching the latest data

我發現JPA沒有從數據庫中獲取最新數據。

我的數據模型有一個擁有許多訂單實體的客戶實體。 我堅持訂單:

em.persist(order);
em.getTransaction().commit();
em.close();

要查看訂單,我打電話:

Collection<Order> orders = customer.getOrderCollection();

訂單集合缺少最新訂單。 我已經檢查過,訂單會持久保存到數據庫中。 啟用驅動程序日志記錄后,在調用getOrderCollection()時,我看不到對數據庫的任何調用。

在Netbeans 6.9中,當我停止並重新部署應用程序時,我看到了我堅持出現的最新訂單。 那么也許有某種緩存可能會干擾getOrderCollection()? 出於某種原因,JPA不會進入數據庫。 為什么?

當調用getOrderCollection()時,如何強制JPA轉到數據庫?

在persistence.xml中嘗試<shared-cache-mode>NONE</shared-cache-mode>

您必須在對象模型中維護雙向關系。 為客戶添加新訂單時,必須將訂單添加到客戶訂單中。

public void addOrder(Order order) {
  this.orders.add(order);
  order.setCustomer(this);
}

您也可以刷新對象或禁用緩存,但修復代碼最好。

看到,

http://en.wikibooks.org/wiki/Java_Persistence/Caching

http://wiki.eclipse.org/EclipseLink/Examples/JPA/Caching

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM