Problemas ao atualizar dados com dataBinding no Grails
14/08/2014 14:17
class Cliente {
static belongsTo = [empresa: Empresa]
static constraints = {
}
}
class Empresa {
/* aqui temos alguns atributos*/
}
Empresa empresa = new Empresa(params)
empresa.save(flush:true)
Empresa empresa = Empresa.get(params.id)
/* ja tentei de todas essas maneiras */
empresa.properties = params
empresa = params
dataBind(empresa,params)
dataBind(empresa,params, exclude:[empresa.id]) // ja tentei com include em td tbm
dataBind(empresa.properties, params)
def instance = DomainClass.findById(params.id) // o mesmo que o seu get
bindData(instance, params)
def salvar() {
def cliente = Cliente.get(params['id']) ?: new Cliente() //se o get() retornar uma empresa ele devolve a empresa do banco senão cria uma nova empresa
bindData(cliente, params)
try {
cliente.save(flush: true, failOnError: true)
redirect action: 'listar' //ou qualquer outra forma que estiver usando.
return
} catch(ex) {
log.error(ex.message, ex)
response.status = 500 //Erro interno do servidor
render template: 'template', model: [cliente: cliente] //Retorna para o formulário com os erros.
return
}
}
name="empresa.cnpj"
name="empresa.nome"
def salvar() {
def empresa = Empresa.get(params['id']) ?: new Empresa()
bindData(empresa, params)
try {
empresa.save(flush: true, failOnError: true)
if (Cliente.findByEmpresa(empresa)) {
redirect(action: 'index')
} else {
def cliente = new Cliente()
bindData(cliente, empresa)
cliente.save(flush: true, failOnError: true)
redirect(action: 'index')
}
} catch(ex) {
log.error(ex.message, ex)
response.status = 500
render ex
}
}
Para se registrar, clique aqui.