我遇到了数据库字段同步问题。
我有一个Singleton类,例如EntityManager,我使用这样的代码:
Persistence.createEntityManagerFactory("Myproject_EJB")
我使用WebApplication和WebService层中的单例创建EntityManager,并使用它来访问持久性。
用户可以使用WebApplication修改此数据库字段,但只有在请求完成时数据才会存储在数据库中(请求可能需要几秒钟)。同时,如果有人调用WebService并询问相同的字段,我的状态会不一致。
在persistence.xml中,我有use_second_level_cache和use_query_cache设置为true,以及transaction-type =“JTA”。
在webApp中,我使用这样的代码来更新数据:
EntityManager em = EntityMan.getEMF().createEntityManager();
try {
em.find(Tel.class, tel.getTelId());
em.merge(tel);
em.flush();
} catch (Exception e) {
logger.debug(e.getMessage());
e.printStackTrace();
}
我该如何解决?
答案 0 :(得分:0)
不要对经常更改的数据使用缓存,或者将缓存时间保持在非常小的范围内?您可以设置表级缓存 http://www.tutorialspoint.com/hibernate/hibernate_caching.htm 只是指点看起来不是一个完美的答案。