CXF Classe de Domínio com Many-to-one
17/05/2013 12:10
package teste
import javax.xml.bind.annotation.XmlAccessType
import javax.xml.bind.annotation.XmlAccessorType
import javax.xml.bind.annotation.XmlElement
@XmlAccessorType(XmlAccessType.NONE)
class Produto implements Serializable {
@XmlElement
Long id
@XmlElement
Empresa empresa
@XmlElement
String descricao
@XmlElement
boolean ativo = true
@Override
String toString() {
"$id - $descricao"
}
static constraints = {
descricao size:1..200
}
static mapping = {
table 'PRODUTO'
id generator:'sequence', params:[sequence:"SEQ_${Utils.getGenerator(className)}_ID"]
empresa column:'ID_EMPRESA'
descricao column:'PROD_DESCRICAO'
ativo column:'PROD_ATIVO'
}
def row() {
return [id: id, descricao: descricao, textField: toString()]
}
}
package teste
import javax.xml.bind.annotation.XmlAccessType
import javax.xml.bind.annotation.XmlAccessorType
import javax.xml.bind.annotation.XmlElement
@XmlAccessorType(XmlAccessType.NONE)
class Empresa implements Serializable {
@XmlElement
Long id
@XmlElement
String razao
@XmlElement
String sigla
@XmlElement
boolean ativo = true
static constraints = {
sigla size:1..14, nullable: true
razao size:3..100
}
static mapping = {
table 'CTRL_EMPRESA'
// Firebird Generator.
id column:'ID_EMPRESA', generator:'assigned'//, params:[sequence:"SEQ_${Utils.getGenerator(className)}_ID"]
version false
razao column: 'EMP_RAZAO'
ativo column: 'EMP_ATIVO'
sigla column: 'EMP_SIGLA'
}
@Override
String toString() {
return "$id - $razao"
}
def row() {
return [id: id, razao: razao, ativo: ativo, textField: toString()]
}
}
package teste
import javax.jws.WebMethod
import javax.jws.WebResult
import org.grails.cxf.utils.EndpointType
class PdvService {
static expose = EndpointType.JAX_WS
@WebResult(name='teste')
@WebMethod
String metodoTeste() {
return "Eu sou um método do Serviço PDV"
}
@WebResult(name='produto')
@WebMethod
Produto[] listaProd() {
return Produto.list() as Produto[]
}
}
<empresa>
<id>1</id>
<razao>EMPRESA ZÉ DAS COUVES</razao>
</empresa
Para se registrar, clique aqui.