我试图做类似于低的但不是正确的
def results = Transportadora.createCriteria().list(max: params.max, offset: params.offset ?: 0) {
or {
lt('validadeRange', reminderDate)
gtProperty('atualRange + 1000','fimRange')
}
ilike('tipo','Correios')
if (params['filter']) {
or {
ilike("firstName", "%${params.filter}%")
ilike("lastName", "%${params.filter}%")
}
}
if (params.order) {
order(params.sort, params.order)
}
}
我需要做什么,并获得" atualrange"(当前范围(列的值添加到1000,并比较它是否大于'fimrange'(范围端(。
gtProperty('atualRange + 1000','fimRange')
但是我在域中还有另一个问题," atualrange"是roturn作为字符串
class Transportadora{
String nome
String codigo
String tipo
String via
Float limPesoVolume //limite de peso por volume
Float limDimVolume //limite de dimensões por volume
Float altLim //Altura limite
Float largLim //Largura limite
Float profLim //Profundidade limite
//static hasMany = [tiposEmbalagem: TipoEmbalagem]
static constraints = {
codigo(blank: false, unique: "tenantId")
nome(blank: false)
tipo(nullable:true, inList:["Cliente", "Motoboy", "Correios", "Transportadora"])
via(nullable:true, inList:["Rodoviária", "Aérea"], display:true)
tenantId(nullable: false, display: false)
idServicoCorreio(nullable:true)
codigoServico(nullable:true)
altLim(nullable:true)
largLim(nullable:true)
profLim(nullable:true)
inicioRange(nullable:true)
atualRange(nullable:true)
fimRange(nullable:true)
validadeRange(nullable:true)
cabecalhoEtiqueta(nullable:true)
}
public String toString() {
nome
}
//uso para correios
Long idServicoCorreio
//uso para correios
String codigoServico
//para uso do range dos correios
String cabecalhoEtiqueta
String inicioRange
String fimRange
String atualRange
Date validadeRange
}
有人知道如何帮助我做到这一点吗?我是否必须在我的班级中存放一个变量才能操纵值,然后在标准列表中调用它们?
sqlRestriction
应该做你想做的事情:
def results = Transportadora.createCriteria().list() {
or {
lt('validadeRange', reminderDate)
sqlRestriction 'atualRange + 1000 > fimRange'
}
}
请参阅http://gorm.grails.org/latest/hibernate/manual/index.html#criteria