0

我有一个产品域:

Product {
   String name 
}

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

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

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

4

1 回答 1

0

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

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

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

于 2012-07-11T13:47:58.143 回答