我们正在尝试根据持久性集合包含的对象来对其进行过滤\操作(过滤掉特定的条目)。

由于此操作将在包含不同集合的大量不同对象上执行,因此必须尽可能通用。
不能选择在HQL\SQL级别上进行过滤,因为它将无法维护。这意味着必须在加载并初始化集合之后执行它。
我们目前正在使用许多 hibernate 事件来处理单个对象,
所以我们尝试听InitializeCollectionEvent
但事实证明,我们的大多数集合都是使用HQL Fetch初始化的,因此不会为他们引发此事件。

我们还有其他可以使用的 hibernate 事件吗?

加载集合后,还有其他处理集合的地方吗?

我们正在使用Hibernate 4.1.7。

最佳答案

我认为在加载集合时在服务器端过滤集合不是一个好主意。如果这样做,则意味着smth出了问题,请重新考虑数据库模型或实体结构。筛选集合的最佳方法之一-使用HQL。或者您可以使用
@Where或@ Loader,@ Filter。

10-08 03:11