Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
createSQLQuery对缓存的休眠效应_Sql_Hibernate_Caching - Fatal编程技术网

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();
}