Grails创建了多对多标准
假设我有以下内容(这是我网站的搜索机制) 现在我想创建一个标准:Grails创建了多对多标准,grails,criteria,Grails,Criteria,假设我有以下内容(这是我网站的搜索机制) 现在我想创建一个标准: def c = Supermarket.createCriteria() def results = c.list { like("sp_street", params.street) and { ************ ... params.product } maxResults(10) } 在那里我有*我想能够找到超级市场上搜索产品的产品。怎么做 PS.If criter
def c = Supermarket.createCriteria()
def results = c.list {
like("sp_street", params.street)
and {
************ ... params.product
}
maxResults(10)
}
在那里我有*我想能够找到超级市场上搜索产品的产品。怎么做
PS.If criteria作为each()方法,迭代所有超市,我可以使用If-else语句搜索产品,如果找到,我可以使用:idEq(it),其中it是超市id。这样我就可以进行搜索。我的问题是,我不知道如何获得当前的sm超市id。有什么帮助吗
和
应用于它内部的标准,因此将其应用于单个语句没有意义。顶级标准由defauilt制定hasMany:Supermarket
和hasMany:Product
。连接器表将由Hibernate自动生成ProductsSupermarket
connector类,请在it类中添加belongsTo:Supermarket
和belongsTo:Product
,并在其他两个类中添加“hasMany:ProductsSupermarket”,否则您将失去Grails的GORM优势id
非常简单:mySupermarket.id
,或者mySupermarket.ident()<默认情况下,代码>id
字段自动添加到类和表中List<Supermarket> results = Supermarket.withCriteria {
like("sp_street", params.street)
productSupermarket {
product {
idEq(params.product)
}
// or just eq('product', someProduct)
}
************ ... params.product
maxResults(10)
}
List results=Supermarket.withCriteria{
例如(“sp_街”,params.街)
产品超市{
产品{
idEq(参数产品)
}
//或者只是eq(‘产品’,someProduct)
}
************…副产品
最大结果(10)
}
List<Supermarket> results = Supermarket.withCriteria {
like("sp_street", params.street)
productSupermarket {
product {
idEq(params.product)
}
// or just eq('product', someProduct)
}
************ ... params.product
maxResults(10)
}