Hibernate JPA 2.1意识到手动DB的变化

时间:2015-05-22 07:39:28

标签: hibernate jpa

我正在使用带有swing应用程序的Hibernate JPA 2.1。我的DB是MySQL。可以从另一个与我的应用程序无关的apring jpa应用程序更新相同的数据库。我的问题是我的swing应用程序总是给我一个旧的实体。如何配置它以了解数据库外部更改。

如果有人解决了这个问题,那将非常有帮助。

感谢所有观看和回答。

2 个答案:

答案 0 :(得分:0)

您需要清除会话缓存:

@PersistenceContext
private EntityManager em;
void beforeQuery() {
    Session session = em.unwrap(Session.class);
    session.clear();
}

答案 1 :(得分:0)

刷新方法应该完成这项工作:

@PersistenceContext
private EntityManager em;
void refresh(MyEntity myEntity) {
    em.refresh(myEntity);
}

有关刷新的更多信息: https://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html#refresh(java.lang.Object)