我正在编写一些工具,以便我的应用程序尽可能默认为批量 HQL 删除。这是为了从我的应用程序中挤出更多性能。但是,这可能会使数据处于过期状态,因为HQL 会绕过会话级缓存删除。
我可以逐出从会话级缓存中删除的实体类的所有实例。这可能会反过来导致问题,因为添加到会话的实体可能会在它们被刷新到数据库之前被驱逐。
我想做的是评估特定实体是否满足删除语句中的 HQL“where”子句。如果是这样,那么我可以将它从会话级缓存中逐出,因为我知道它已被批量 HQL 删除从数据库中删除。
我看不到任何明显的方法可以让我这样做。我可以打开HqlParser并自己执行此操作,但我怀疑沿着这条路线前进将成为一项繁重的编码任务。
想法?