2013-07-23 91 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