Estou personalizando o exemplo da apostila fj28 da caelum. No meu caso, estou tendo a necessidade de salvar mais de uma entidade no banco de dados, a partir de dados de um único formulário. Essas entidades estão relacionadas.
Parte do código formulario:<tr>
<td><label for="nome">Nome do Cliente:</label></td>
<td><input id="nome" type="text" name="cliente.nome"size="60" maxlength="60"></input></td>
</tr>
<tr>
<td><label for="logradouro">logradouro:</label></td>
<td><input id="logradouro" name="endereco.logradouro" type="text" size="60" maxlength="60"></td>
</tr>
<tr>
<td><label for="ddd">DDD:</label><input id="ddd" name="telefone.ddd" type="text" size=3" maxlength="3"></input> </td>
<td> <label for="numeroTelefone">Numero:</label> <input id="numeroTelefone" type="text" name="telefone.numeroTelefone" size=8" maxlength="8"> </input></td>
</tr>
public void adiciona(Cliente cliente, Endereco endereco, Telefone telefone){
dao.salva(cliente, endereco, telefone);
result.redirectTo(ClienteController.class).lista();
}
public void salva(Cliente cliente, Endereco endereco,
Telefone telefone) {
Transaction tx = session.beginTransaction();
session.save(cliente);
session.save(endereco);
session.save(telefone);
cliente.setEndereco(endereco);
session.update(cliente);
telefone.setCliente(cliente);
session.update(endereco);
tx.commit();
}
Da forma com eu estou fazendo, dá certo, ele cadastra no banco as três entidades e seta os valores das fks, porém, gostaria de saber de existe alguma melhor prática para se fazer isso que eu fiz ou é desta forma mesmo.
Agradeço quaisquer esclarecimentos.
