Hibernate在一对多映射上添加where子句

时间:2013-01-28 15:24:18

标签: java database hibernate mapping

我在.hbm文件中设置了这个。

<set name="subTopicsTb" table="subtopics_tb" inverse="true" lazy="false" fetch="select">
        <key>
            <column name="topic_id" />
        </key>
        <one-to-many class="com.topics.model.SubTopics" />
    </set>

现在,默认情况下,hibernate得到了topic_id为id的所有子主题。 我想过滤子主题。添加类似于subTopics.date的地方感谢

3 个答案:

答案 0 :(得分:2)

这实际上有效,数据库中的列名是datewhere 中的set属性会将原始sql 附加到您的查询中,因此您必须指定数据库中的 NOT HQL :< / p>

<set name="subTopicsTb" table="subtopics_tb" inverse="true" lazy="false" 
    fetch="select" where="date is not null">
    <key>
        <column name="topic_id" />
    </key>
    <one-to-many class="com.topics.model.SubTopics" />
</set>

答案 1 :(得分:1)

添加where子句?我不知道你是如何在XML配置中设置它的。但你可以查看注释版本here

我在stackoverflow找到了关于如何添加XML的位置的内容。

答案 2 :(得分:0)

您使用HQL检索SubTopics吗?如果是这样,您可以在选择中包含过滤器。例如:

String query = "FROM SubTopic subtopic WHERE subtopic.date != null"