我有一个被映射为具有一组对象的对象,非常简单。但是,我真正想做的是为该映射设置一些标准。这是当前的映射:

    <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。 Hibernate文档中的集合映射您会发现可以在任何集合映射上使用WHERE子句:

其中(可选)指定在检索或删除集合时使用的任意SQL WHERE条件(如果集合应仅包含可用数据的子集,则非常有用)

你说你想使用HQL查询但我不认为这是可能的。但是,由于您只需在映射中指定一个简单的WHERE子句,因此在HQL和“真实”之间没有太大区别。 SQL。

其他提示

我不确定我是否清楚地理解了您的问题,但似乎您需要在SQL查询中使用where子句

您应该能够在HQL中使用where子句,或者在hibernate中使用标准api来实现所需的结果:

假设您有一个名为“有效”状态的字段或“完成”或你的HQL应该是这样的:

from ops where status="active"

或使用标准api:

List activeOperations = sess.createCriteria(Operation.class)
    .add( Restrictions.equals("status", "active") )
    .list();

hibernate教程的第14章和第15章谈到了这一点: http://www.hibernate.org/hib_docs/v3/参考/ EN / HTML / index.html中

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top