java - 多对多单向关系的HQL查询

标签 java mysql hibernate many-to-many hql

我有 2 个实体:主题和评论。他们有多对多的关系。 这是 2 个 hbm.xml 配置。

<hibernate-mapping package="entity"> <class name="Comment" table="COMMENT"> <id name="id" column="COMMENT_ID"> <generator class="increment"/> </id> <property name="message" column="MESSAGE" not-null="true"/> <many-to-one name="author" class="entity.User" fetch="select"> <column name="USER_ID" not-null="true"/> </many-to-one> </class> </hibernate-mapping>

<hibernate-mapping package="entity">
<class name="Topic" table="TOPIC">
    <id name="id" column="TOPIC_ID">
        <generator class="increment"/>
    </id>
    <bag name="comments" table="TOPIC_COMMENT" cascade="all" inverse="false" fetch="join">
        <key>
            <column name="TOPIC_ID"/>
        </key>
        <many-to-many class="entity.Comment" column="COMMENT_ID"/>
    </bag>
</class>

所以,我需要按主题获取所有评论。 我创建了一个简单的 hql 查询 "from Topic t inner join t.comments where t.id = :id"但它没有奏效。请帮助我。

最佳答案

select t from Topic t inner join t.comments tc where tc.id = :id

关于java - 多对多单向关系的HQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24719804/

相关文章:

java - 从特殊字符串包围的字符串中提取两个子字符串(Java)

mysql - 将两个不同的 WHERE 子句/条件合并为一个查询

php - 为什么即使我传递了错误的用户名,mysqli_connect() 也返回 true?

java - JPA 加入继承类

java - DBUnit 测试比较失败

java - 如何使用HQL从实体中获取数据?

java - 如何使用 htmlunit 更新 html 中的内容?

java - 任务 ':spoon' 执行失败。 > 组织/eclipse/jdt/internal/core/util/CommentRecorderParser

java - 如何从 jar 提交 Dataflow 作业?

mysql - 在 UI 中查询生成树