Grails Gorm 查询限制

Grails Gorm Query Restriction

我有两个域

class ProductQuantity {
    Integer quantity

    static belongsTo = [productSize: ProductSize]
}

class ProductSize {

    String size

    static hasMany = [productQuantities : ProductQuantity]
}

我正在尝试构建一个查询,在该查询中我通过 productSize 获取所有 ProductQuantity。我有以下有效的查询。

def productSize = ProductSize.findAllById(1);
def productQuantities = ProductQuantity.findAllByProductSize(productSize)

我希望通过单个查询而不是两个单独的查询来获取 ProductQuanties。

是的,您可以通过 createCriteria 获取此信息,例如 --

def productQuantities = ProductQuantity.createCriteria().list() {
    productSize {
        eq('id', 1)
    }
}
ProductQuantity.createCriteria().list {
    eq 'productSize', ProductSize.load(1)
}

ProductQuantity.withCriteria {
    eq 'productSize', ProductSize.load(1)
}

ProductQuantity.where {
    productSize == ProductSize.load(1)
}.list()

ProductQuantity.findAll("from ProductQuantity where productSize = ?", [ProductSize.load(1)])