[英]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.