Hibernate:使用筛选的子集合获取整个层次结构
我使用的是hibernate,我希望得到用户->帖子->评论的整个层次结构,但只有那些“状态”为true的评论 我试过这样的方法:Hibernate:使用筛选的子集合获取整个层次结构,hibernate,hql,Hibernate,Hql,我使用的是hibernate,我希望得到用户->帖子->评论的整个层次结构,但只有那些“状态”为true的评论 我试过这样的方法: Select user from User user join user.posts post join post.comments comment where comment.status = true 但这给了我一个爆炸式的用户数量与状态为真的评论和内单用户->帖子,我有所有的评论,而不仅仅是那些与状态为真 我也尝试过“左连接”或“内部连接”,但我得到了相同的
Select user from User user join user.posts post join post.comments comment where comment.status = true
但这给了我一个爆炸式的用户数量与状态为真的评论和内单用户->帖子,我有所有的评论,而不仅仅是那些与状态为真
我也尝试过“左连接”或“内部连接”,但我得到了相同的结果
有办法得到我想要的吗?而“更清洁”的方法是什么
下面是类结构的一个小示例:
Class User
List<Post> posts
Class Post
List<Comment> comments
Class Comment
String text
boolean status
类用户
列出职位
班岗
列出评论
课堂评论
字符串文本
布尔状态
谢谢你的帮助 我认为您要做的是使用@FilterJoinTable注释过滤集合:
@FilterJoinTable(name="activeComments", condition="status = :status")
List<Comment> comments
并从会话中启用它:
Filter filter = session.enableFilter("activeComments");
filter.setParameter("status", true);
以下是有关Hibernate筛选的教程,并附有示例:
…和官方Hibernate 3文档:
Filter filter = session.enableFilter("activeComments");
filter.setParameter("status", true);