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
Hibernate 评估一个实体是否满足;其中;HQL查询_Hibernate_Hql - Fatal编程技术网

Hibernate 评估一个实体是否满足;其中;HQL查询

Hibernate 评估一个实体是否满足;其中;HQL查询,hibernate,hql,Hibernate,Hql,我正在编写一些工具,以便我的应用程序在可能的情况下默认进行批量HQL删除。这是为了提高我的应用程序的性能。但是,这可能会使会话中的数据过时,因为 我可以从会话级缓存中删除实体类的所有实例。这可能会反过来导致问题,因为添加到会话中的实体可能会在刷新到数据库之前被逐出 我希望能够评估特定实体是否满足delete语句中的HQL“where”子句。如果是这样,那么我可以将其从会话级缓存中逐出,因为我知道它将被大容量HQL delete从数据库中删除 我看不到任何明显的方法可以让我这么做。我可以自己打开并

我正在编写一些工具,以便我的应用程序在可能的情况下默认进行批量HQL删除。这是为了提高我的应用程序的性能。但是,这可能会使会话中的数据过时,因为

我可以从会话级缓存中删除实体类的所有实例。这可能会反过来导致问题,因为添加到会话中的实体可能会在刷新到数据库之前被逐出

我希望能够评估特定实体是否满足delete语句中的HQL“where”子句。如果是这样,那么我可以将其从会话级缓存中逐出,因为我知道它将被大容量HQL delete从数据库中删除

我看不到任何明显的方法可以让我这么做。我可以自己打开并完成这项工作,但我怀疑沿着这条路线前进将成为一项繁重的编码任务


想法?

你能使用update()方法的delete或update查询instant吗?我不太明白你的意思。我计划使用delete查询,但这可能会使会话级缓存中的数据处于无效状态。您能进一步解释一下吗?当您使用删除查询时,我认为hibernate不会将完整对象加载到会话中。这是正确的。但是,如果使用自然键作为标识符://填充会话,则选择、删除和保存可能会导致非请求ObjectException。createQuery(“从员工”).list()//从数据库中删除数据,但会话未触及。createQuery(“从员工中删除”)。executeUpdate()//boom:ununiqueObjectException session.save(new Employee())虽然显然不删除和插入,而是更新,但仍有许多遗留代码需要重构。