具有以下域模式:

class TransactionHeader {
  static hasMany = [details: TransactionDetail]
}

class TransactionDetail {
   static belongsTo = [header: TransactionHeader]
   Product product
}

我正在尝试编写一个标准查询,该查询将返回所有包含带有2个不同产品的TransactionDetails的TransactionHeader行。这是我到目前为止所拥有的,并且并没有完全满足我的要求:
def list = TransactionHeader.withCriteria {
    details {
      and {
        eq("product", product1)
        eq("product", product2)
      }
    }
}

发生的事情是返回行中至少包含1个产品的1个明细。我需要具有2个细节的行,每个细节都包含一种产品。

最佳答案

感觉就像您想从中移出细节,所以实际上

def list = TransactionHeader.withCriteria {
    and {
       details {
          eq("product", product1)
       }
       details {
          eq("product", product2)
       }
    }
}

虽然不确定冬眠/冬眠会如何处理。

关于grails - GORM标准查询:查找具有特定属性的子级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11674600/

10-16 10:01