将列求和值与另一列的列表 - 标准 - grails进行比较



我试图做类似于低的但不是正确的

    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

相关内容

  • 没有找到相关文章

最新更新