如何创建自定义 Grails 查询

How to create a custom Grails query

我是 Grails 的新手,在查询方面遇到了一些问题。我有两个像这样的域 类:

class Cliente {

    String nombre
    String cuit
    String localidad
    String establecimiento

    static hasMany = [facturas: Factura]
}

class Factura {

    String Proveedor
    int sucursal
    String numero
    String letraFactura
    Cliente cliente
    Date fecha
    String tipo
}

我想列出 facturas 中客户名称为:

的所有元素

预期结果:

Proveedor|sucursal|numero|cliente_nombre|fecha

我尝试了一些不同的方法,但总是得到 cliente_id 而不是 cliente_nombre

认为我知道你在问什么:给定一个客户名称,return一个factura的列表,并规定字段列表应包含客户端名称而不是客户端 ID。

import org.hibernate.criterion.CriteriaSpecification

// given a client name
def clientNameToSearch = 'some name'

def crit = Factura.createCriteria()

def results = crit.list() {
    createAlias('cliente', 'cli')
    eq('cli.nombre', clientNameToSearch)

    // optional transformer to output a map rather than a list
    resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP)

    projections {
        property('Proveedor', 'Proveedor')
        property('sucursal', 'sucursal')
        property('numero', 'numero')
        property('cli.nombre', 'clienteNombre')
        property('fecha', 'fecha')
    }
}

results 将包含地图列表,每个地图都具有以下结构:

[
    Proveedor: ...,
    sucursal: ...,
    numero: ...,
    clienteNombre: ...,
    fecha: ...
]