[英]grails named query returns incorrect data
我在域類中有一個簡單的查詢..
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項。.我通過添加第三個參數(partNumber)對其進行了優化,並且它錯誤地返回了2項,而不是預期的1項。 ,復制生成的stmt並在dbconsole中運行它,在它正確返回了預期的1項的地方..我沒有打開緩存,我可以看到它並且正在運行grails 2.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
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.