通过使用条件查询数据库来创建集合

时间:2014-01-14 16:02:49

标签: grails

我正在尝试查询PerformanceReview表,belongsTo一个PerformanceReviewStatus,它将返回状态为newopen的效果评估。我想出了如何获得具有新状态的所有性能评估,但我如何才能找到状态为new或open的所有评估?

def newStatus = PerformanceReviewStatus.findByName('New')
def openStatus = PerformanceReviewStatus.findByName('open')
def query = PerformanceReview.findAllByPerformanceReviewStatus(newStatus)

1 个答案:

答案 0 :(得分:0)

简单的HQL看起来像:

def performanceReviews = 
   PerformanceReview.executeQuery("select pr from PerformanceReview as pr \
                                   inner join pr.performanceReviewStatus as prs \
                                   where prs.name in (:name)", 
                                   [name: ['New', 'Open']])

免责声明: - 如果您未获得预期结果,请仔细检查以使用左连接。

如果您想坚持使用动态查找程序,请尝试使用inList

def query = 
 PerformanceReview.findAllByPerformanceReviewStatusInList([newStatus,openStatus])