【发布时间】:2010-10-12 17:55:21
【问题描述】:
我有两个休眠实体用户和博客。用户可以对多个标签感兴趣。博客可以属于多个标签。对于用户,我如何找到属于用户感兴趣的标签的博客?
我需要类似的东西
Select * from Blog where Blog.Tags IN User.Tags
除了 SQL 或 HQL 不允许在 IN 子句中进行此类比较
我目前使用的解决方案是:
- 生成一个 VIEW USER_BLOGS,它是 连接表 USER_TAGS 和 BLOG_TAGS。
-
为视图定义一个实体 UserBlog 并使用它来过滤博客 HQL 查询:
Select * from Blog where Blog.id IN (Select blog_id from UserBlog where user_id = "CurrentUser")
我确定这是一种常见的情况。有没有纯 Hibernate 或 HQL 解决方案?
【问题讨论】:
-
博客和标签与用户和标签之间的关系是如何存储的?
-
在两个连接表 BLOG_TAGS 和 USER_TAGS 中,TAGS 在一个单独的表上。
标签: java sql hibernate activerecord join