我有一个对象,它被映射为一组对象,非常简单。然而,我真正想做的是为该映射设置一些标准。这是当前的映射:
<set name="ops" inverse="true" cascade="all, delete-orphan">
<key column="cityblock_id" on-delete="cascade"/>
<one-to-many class="com.tamedtornado.data.Operation"/>
</set>
现在,我不想只获取所有关联的操作,而是只想获取尚未完成、已完成或其他任何操作。 Hibernate 文档对此非常安静,尽管一些旧的论坛帖子已经向我展示了一些。您显然可以使用 sql-query 标签,但这也不是我想要做的。
是否可以使用 HQL 查询来执行此操作?我只想通过一个简单的查询来缩小结果范围,并有一些集合映射,例如 active_ops 和 Completed_ops 等。
干杯, 杰森
最佳答案
下6.2. Collection mappings在 Hibernate 文档中,您会发现可以在任何集合映射上使用 WHERE 子句:
where(可选)指定检索或删除集合时要使用的任意 SQL WHERE 条件(如果集合应仅包含可用数据的子集,则很有用)
您说您想使用 HQL 查询,但我认为这是不可能的。但由于您只需在映射中指定一个简单的 WHERE 子句,因此 HQL 和“真正的”SQL 之间并没有太大区别。
关于java - 如何在 Hibernate 中进行基于自定义查询的集合映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/432347/