我是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
。
答案 0 :(得分:0)
我认为我知道你在问什么:给定一个客户名称,返回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: ...
]