是Hibernate query.uniqueResult()命中数据库

时间:2016-11-17 12:52:59

标签: java spring hibernate hql

我使用下面的代码来获取interger值。

Query query = currentSession().getNamedQuery("getUser");
query.setString("password", password);
query.setString("userId", userId);

if (query.uniqueResult() != null && (Integer) query.uniqueResult() = 1 ) {
 ...
}

请解释如何

query.uniqueResult() 

使用缓存和缓存

这个命中数据库是两次吗?

如果启用缓存会怎样?甚至它打了两次数据库?

2 个答案:

答案 0 :(得分:1)

是的,确实如此。您应该将值存储在变量中并检查变量是否为null / 1

答案 1 :(得分:0)

是的,它会起作用。 是的,它会击中de DB两次。

你可能会跟随XtremeBaumer建议你做这样的测试:

Integer test = query.uniqueResult();     
if ( test != null && test == 1 ) {
 ...
}