使用countBy(或动态查找程序)不会给出结果,但是带有标准的结果。
这是班级:
class Message {
EntityType entityType
String code
}
然后:
assert 1 == Message.countByCodeAndEntityType("category.name.${result.id}", EntityType.APPLICATION_TEXT)
返回0(假断言),但......
assert 1 == Message.createCriteria().list(){
eq ("code", "category.name.${result.id}")
eq ("entityType",EntityType.APPLICATION_TEXT)
projections{
count()
}
}[0]
返回正确的结果1
是什么原因?
答案 0 :(得分:0)
您是否检查过两种变体中是否正确解析了$ {result.id}?
如何查看SQL?
对于Counting,我更喜欢这个:
Message.createCriteria().count(){
eq ("code", "category.name.${result.id}")
eq ("entityType",EntityType.APPLICATION_TEXT)
}
答案 1 :(得分:0)
请参阅文档:https://grails.github.io/grails-doc/latest/ref/Domain%20Classes/createCriteria.html
count 返回给定属性名称的计数
所以你需要在投影中使用rowCount() 享受!)