0
我有一個表,Users
,主鍵爲id :: int4
,自然鍵爲password :: varchar(32)
。我想使用Hibernate儘可能快地檢查數據庫中的組合id
和password
是否存在一行。休眠L2查詢緩存:不要在緩存中缺少命中數據庫
所以我加載所有用戶的L2高速緩存,並做
User u = (User)session.get(User.class, uId);
if (!u.getPassword().equals(pass)) {
// fail when passwords are not equal
}
這是一件好事,當緩存被擊中,但在高速緩存未命中(這意味着輸入數據錯誤),這將觸發select查詢。如果在緩存中沒有找到值,我怎麼才能指出hibernate不要命中數據庫?
我看到一個選項,直接從緩存中加載用戶,然後使用類似session.merge()
它。但也許有更好的方法?
PS。我還有一個抱怨。如果密碼不相同,我的用戶對象脫水時性能會降低(尚未進行配置)。這也可以消除?