Bom dia pessoal
Sou novo na lista vou ver se consiguo me espressar corretamente…
Estou com um problema em um mapeamento one-to-many o meu mapeamento ficou da seguinte maneira
<set name=“ceps” lazy=“true” inverse=“true”>
<key column=“CODMUNICIPIO”/>
<one-to-many class=“br.edu.unoesc.academico.model.pessoa.Cep”/>
</set>
Estou tentando cadastrar muitos ceps para um municipio, até ai blz o mapeamento não deu erro nenhum, consiguo mostrar na web os ceps dos municipios sem problemas, só que quando tento adicionar um novo ele não esta executando o comando insert para a tabela cep mas ele executa o update no municipio.
Estou utilizando spring(mvc, dao, service) + hibernate
Tenho um atributo ma classe municipio, para controlar os ceps
private Set ceps = new HashSet();
E no meu formController (que acho que é aonde tem o erro) tenho isto:
public ModelAndView onSubmit
{
----algumas validações—
Cep cep = new Cep();
cep.setCodigo(new Long(municipioCeps));
cep.setMunicipio(municipio);
municipio.getCeps().clear();
municipio.addCep(cep);
municipioManager.saveMunicipio(municipio);
}
Até mais
Fico no aguarde de sugestões e desde já agradeço
André luiz Forchesatto
Bem… é o seguinte!
pelo que entendi…temos:
Municipio, que contem uma coleção de ceps, certo?
Para adicionar um Cep apenas, vocÊ deveria fazer o mapeamento inverso.
Cep está contido em Municipio.
Ai você salvaria o Cep, que pertence a um determinado municipio, ao inves de salvar uma coleção de ceps de um municipio.
Você pode salvar assim:
Municipio municipio = new Municipio();
municipio.setCepSet(cepsSet);
XX.salvar(municipio);
ou assim:
Cep cep = new Cep();
cep.setMunicipio(municipio);
XX.salvar(cep);
entendeu?
Certo entendi o processo como deve ser, o que não consegui visualizar é como vou pegar do html o meu cep novo e transforma-lo em um Set para salvar passar para o setCepSet
Se você precisa salvar uma lista, use o set.
Se precisa salvar um por vez, use a outra forma.
Como salvar num set??
Set set = new HashSet();
set.add(objeto);
Municipio.setCepSet(set);
Blz
Consegui resolver o problema eu queria salvar um por vez.
Unica coisa que não sei se estou fazendo certo é que estou mandando salvar o cep também ele não esta salvando automatico.
//o municipio é um objeto que vem do form web
Cep cep = new Cep();
cep.setCodigo(teste);
cep.setMunicipio(municipio);
cepManager.saveCep(cep);
municipio.addCep(cep);
municipioManager.saveMunicipio(municipio);
pensei que quando eu desce um comando
municipioManager.saveMunicipio(municipio);
ele já iria pegar o que tinha no Set ceps e salvar na tabela cep
Cep cep = new Cep();
cep.setCodigo(teste);
cep.setMunicipio(municipio);
cepManager.saveCep(cep);
Isso é suficiente para você salvar o Cep.
Com isso aqui embaixo, você estaria atualizando Municipio e salvando o Cep.
municipio.addCep(cep);
municipioManager.saveMunicipio(municipio);
Você deve usar um ou o outro!
Valeu muito obrigado, funcionou legal
Até