2016-11-17 6 views
-3

У меня есть код ниже, чтобы получить значение interger.Is Hibernate query.uniqueResult() ударил базу данных

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

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

Пожалуйста, объясните, как

query.uniqueResult() 

работы с кэшем и из кэша

Является ли это хит базы данных в два раза?

Что произойдет, если мы включим кеш? даже его удар дважды базы данных?

+2

'getUser' странное имя для получения целого значения. –

ответ

1

да оно. вы должны сохранить значение в переменной и проверить, равна ли эта переменная/1

+0

спасибо. можете ли вы дать хорошее представление о том, как это работает? –

+0

, к сожалению, нет. я узнал его, используя его и глядя, когда и как часто мои запросы попадают в db – XtremeBaumer

0

Да, это сработает. Да, он дважды ударит DB.

Вы можете следовать XtremeBaumer советовать и сделать ваши TES так:

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