我有以下数据库架构:
两张桌子,书籍和标签,与n-m关系。
图书 - 标记
例如,我们可以使用带有标签{A}的标签{A,B,C}和书籍2的书1。
我想根据标签列表选择书籍。
例如:所选标签列表:{A,B} - >第1册
我的想法是使用MINUS SQL函数,将书签标签列表减去选定的标签列表,如果列表为空则返回书籍。不幸的是,HQL不支持这个SQL函数。
有任何想法吗?
答案 0 :(得分:0)
1 /我会尝试另一种方法,类似的东西:
from
book
where
book.id in (
select
b.id
from
book b
where
b.tags.name in (?)
group by
b.id
having
count(b.tags.id) = ?
)
2 /如果您更喜欢您的查询,您仍然可以使用sql-query(参见http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querysql.html第16.2节)。