【发布时间】:2011-12-03 17:20:42
【问题描述】:
有什么方法可以删除特定命名查询的缓存吗?我真的不想删除所有查询...或者还有其他解决方法吗?
即使我使用的是普通的 Query 类,它也不起作用...
我使用的是 hibernate 3.6,glassfish 3.1.1,这是一个 java ee 应用程序(代码来自 ejb 模块)
我有这样的事情:
public User getUserByName(String username) {
try {
return (User) em.createNamedQuery("User.getUserByName").setParameter("username", username).getSingleResult();
} catch (NoResultException e) {
return null;
}
}
//...
if(getUserByName(entity.getUsername()!=null) {
em.persist(entity);
}
//...
// username added in database (checked)
if(getUserByName(entity.getUsername())==null) {
//something else
}
我第二次使用“getUserByName”又是……空……为什么?
我认为它是缓存模块(因为如果我将我的提供程序设置为 eclipselink,它会正常工作)...
我正在使用休眠进行搜索..
【问题讨论】:
标签: java hibernate caching jakarta-ee jpa