繁体   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