一些Criteria:associations+not+ilike不会给出好结果的方法。我仍然会遇到一些案例,这些案例的行为具有我不希望出现在结果中的状态。有其他方法的线索或建议吗?
我在控制器中有这个:
def pgp = [:]
pgp.max = params.max?.toInteger() ?: 20;
pgp.offset = params.offset?.toInteger() ?: 0
pgp.max = 20;
def result = Case.createCriteria().list(pgp) {
actions {
not {
and {
ilike("status","%CLOSED")
ilike("status","%Installed in PRD")
}
}
}
}
这是相关的领域剪切:
class Case {
String caseCode
String caseName
String caseType
static hasMany = [ actions : Action ]
我在Grails 2.4.4 上
您的布尔逻辑有故障-and
应该是or
。对于status
的每个可能值,您当前的测试都将为true,因为任何通过ilike("status","%CLOSED")
的值都将不通过ilike("status","%Installed in PRD")
,反之亦然。