Hibernate tentanto salvar antes de eu dar o comando save..pq?

2 respostas
D

Opa :smiley:

Tenho um mapeamento N-N e toda vez que eu adiciono um objeto novo na coleção:

getAgendamentoBean().getProcedimentos().add(new ProcedimentoBean());

Ele tenta salvar e acaba gerando uma exceção:

Meu mapeamento:

@ManyToMany(fetch=FetchType.LAZY)
	@JoinTable(name="agendamento_procedimento", joinColumns=@JoinColumn(name="agendamento_id"), inverseJoinColumns=@JoinColumn(name="procedimento_id"))
	private List<ProcedimentoBean> procedimentos = new ArrayList<ProcedimentoBean>();

Eu gostaria que os objetos só fossem salvos quando eu chamasse .save(object). Alguém pode me explicar o pq do hibernate fazer isso e como que eu faço pra resolver isso?

[]'s

2 Respostas

fiaux

Bom, existe um tal automatic dirty checking no Hibernate que ao identificar uma alteração num objeto já persistido ele salva automáticamente. Não sei exatamente como funciona. Já tive esse problema, achei que era isso mas era configuração do Spring, tinha que configurar para não propagar certas coisas.

Sefo

É como o fiaux disse, isso se chama automatic dirty checking, e isso ocorre quando vc atualiza uma coleção de um objeto dentro de uma unidade de trabalho.

Mais informações na documentação do Hibernate:
http://www.hibernate.org/hib_docs/v3/reference/en/html/tutorial.html#tutorial-associations-working

Criado 7 de agosto de 2008
Ultima resposta 8 de ago. de 2008
Respostas 2
Participantes 3