【发布时间】:2011-05-25 03:20:49
【问题描述】:
我有一个映射集合,当我在另一个应用程序中从外部向该集合添加项目时,该集合没有更新。
二级缓存被禁用。
示例...
session = HibernateDataSource.openSession();
User dao = (User) session.load(User.class, 2434152);
// No items now, this gives 0
System.err.println(dao.getItems().size());
session.close();
Thread.sleep(10000);
// Add an item outside, e.g. in PMA
session = HibernateDataSource.openSession();
HibernateDataSource.getSessionFactory().evict(User.class);
HibernateDataSource.getSessionFactory().evict(UserItem.class);
HibernateDataSource.getSessionFactory().evictCollection(User.class.getName() + ".items");
dao = (User) session.load(User.class, 2434152);
// Still zero
System.err.println(dao.getItems().size());
session.close();
我在谷歌搜索时尝试了几种解决方案,例如将集合设置为脏。没有任何效果。
还有什么我没看过的吗?
附:首先在 Hibernate 3.2.7 上尝试。升级到3.3.2,没区别。
【问题讨论】:
标签: hibernate