grails命名查询返回不正确的数据
我在域类中有一个简单的查询grails命名查询返回不正确的数据,grails,gorm,Grails,Gorm,我在域类中有一个简单的查询 inventoryItems { String partNumber, String serialReference, Vendor vendor -> def c = InventoryMaster.createCriteria() def results = c.list { if(partNumber) { println "part .. ${partN
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和vendor,它正确返回2个项。。我通过添加第三个param partNumber对其进行了优化,它错误地返回了2个项,而不是预期的1个项。。我打开了sql日志记录,复制了生成的stmt,并在dbconsole中运行它,在那里它正确地返回了预期的1项。。我没有打开可以看到的缓存,并且正在运行Grails2.3.7。。谁能告诉我我做错了什么或是什么导致了这一切
谢谢 我认为您可以通过以下方式简化查询:
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
}
}
为什么要从命名查询中调用InventoryMaster.createCriteria?正确,我很愚蠢。。对不起,我不应该工作这么晚