我在域类中有一个简单的查询..
inventoryItems { String partNumber, String serialReference, Vendor vendor ->
def c = InventoryMaster.createCriteria()
def results = c.list {
if(partNumber) {
println "part .. ${partNumber} ..."
part {
eq 'partNumber', partNumber
}
}
if(vendor) {
println "vendor .. ${vendor} ... "
part {
eq 'vendor', vendor
}
}
if(serialReference) {
println "serial reference .. ${serialReference}"
eq 'serialReference', serialReference
}
}
results
}
我称之为最初提供2个参数(serialReference和供应商)并正确返回2个项目。我通过添加第三个参数(partNumber)来改进它,并且错误返回2个项目而不是1预期..我已启用sql日志记录,复制生成的stmt并将其运行到dbconsole,其中正确返回预期的1项。我有否缓存切换在那我可以看到并且正在运行grails 2.3.7 ..任何人都可以建议我做错了什么或是什么导致了这个?
感谢。
答案 0 :(得分:0)
我认为您可以使用以下内容简化查询:
inventoryItems { String partNumber, String serialReference, Vendor vendor ->
part {
if(partNumber) {
println "part .. ${partNumber} ..."
eq 'partNumber', partNumber
}
if(vendor) {
println "vendor .. ${vendor} ... "
eq 'vendor', vendor
}
}
if(serialReference) {
println "serial reference .. ${serialReference}"
eq 'serialReference', serialReference
}
}