使用具有相同属性但具有多个值的findBy

时间:2012-07-11 13:43:24

标签: hibernate gorm grails-domain-class

我有一个产品域名:

Product {
   String name 
}

现在我需要issuedProductInstancerequestedProductInstance。为此,我使用findBy作为

def find(String issuedProduct,String requestedProduct){
    Product issuedProductInstance=Product.findByName(issuedProduct)
    Product requestedProductInstance=Product.findByName(requestedProduct)
}

通过这种方式,该方法可以两次击中DB。有没有办法通过只执行一个查询来找到两个产品。

1 个答案:

答案 0 :(得分:0)

不了解grails,但您只需要以下查询:

select p from Product p where p.name in (:names)

当然,这个查询可以返回0,1或2个产品,你必须遍历列表才能知道哪个是“issuedProduct”作为名称,哪个是另一个。