2013-07-23 65 views
0

假设我有一个父类Book,每个都有一个作者列表。 我试图找到至少有两名作者的一本名为“Bob”和另一本名为“Alan”的书籍。休眠查询与标准的关联:'和'对孩子?

这是我的Groovy代码不起作用,它在同一时间寻找名为“Bob”和“Alan”的作者的书籍,所以它返回0个项目。我试图创建2个别名来创建2个连接,但Hibernate拒绝为同一个集合创建2个别名。 (Restrictions.eq(“name”,“Bob”)).add(Restrictions.eq(“name”,“)”)。阿兰“))

回答

0

您需要使用LogicalExpression这样

def crit = hsession.createCriteria(Book.class) 
.createAlias("authors", "author") 
.add(Restrictions.or(Restrictions.eq("author.name", "Bob"), Restrictions.eq("author.name", "Alan"))) 
+0

谢谢,但会用两种名为鲍勃的作者或名为艾伦一个作家,不是所有的书籍所期望的结果返回书籍至少两位作者鲍勃和艾伦。 – user1559679