[英]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);
}
您也可以刷新對象或禁用緩存,但修復代碼最好。
看到,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.