Hibernate

session.createSQLQuery で更新すると、2次キャッシュが全部フラッシュされる

Query query = session.createSQLQuery("UPDATE foobar SET value = ? WHERE id = ?"); query.setInteger(0, newValue); query.setLong(1, id); query.executeUpdate();などとしてcreateSQLQueryを使ってUPDATE文を実行すると、Hibernateの2次キャッシュが「…

where e.child = ? とするとクエリキャッシュが効かない?

# 以前にも同じことでハマったことがあったのをすっかり忘れていたのでメモ Query query = session.createQuery("from Entity e where e.child = ?"); query.setParameter(0, child);とパラメータにChildエンティティを直接渡すと、クエリキャッシュを有効に…

OSCacheとUpdateTimestampsCache

hibernate.cache.use_query_cache true This setting causes the creation of two new cache regions - one holding cached query result sets (org.hibernate.cache.StandardQueryCache), the other holding timestamps of the most recent updates to quer…