createSQLQuery对缓存的休眠效应
通过执行以下函数:createSQLQuery对缓存的休眠效应,sql,hibernate,caching,Sql,Hibernate,Caching,通过执行以下函数: public void deleteByEntryId(long id) { super.getSession().createSQLQuery("DELETE FROM guest WHERE entry_fk = " + id).executeUpdate(); } Hibernate的缓存是否会知道/通知来宾对象的删除 超级类是Spring的Hibernate模板,它提供了方法getSession()和许多其他方法 createSQLQuery(…)`是Hi
public void deleteByEntryId(long id)
{
super.getSession().createSQLQuery("DELETE FROM guest WHERE entry_fk = " + id).executeUpdate();
}
Hibernate的缓存是否会知道/通知来宾对象的删除
- 超级类是Spring的Hibernate模板,它提供了方法
和许多其他方法getSession()
- createSQLQuery(…)`是Hibernate的一个函数
(根据我是按对象删除还是按SQLquery删除,我会在测试中进一步得到StaleState或OtimistickLockException。)不,不会。即使HQL更新和删除查询也不会影响内存状态。要使来宾表缓存无效,需要添加“addSynchronizedEntityClass”调用:
public void deleteByEntryId(long id)
{
super.getSession()
.createSQLQuery("DELETE FROM guest WHERE entry_fk = " + id)
.addSynchronizedEntityClass(Guest.class)
.executeUpdate();
}