estou com um putta problema, fazia um bom tempo q eu ñ ultilizava o hibernate, e a ferrugem tá me corroendo, nas versões anteriores a 3.5 eu nunca tive problemas como esse, confesso q ñ sei se deve ao fato das mudanças no hibernate 3.5, ou da versão “eu 2010” hehe (que é o mais provável)
o lance é q ñ consigo ter acesso aos dados em uma coleção relacionada a uma entidade, pior q isso ainda, a coleção nem é instanciada apesar de esta definido assim eu sua declaração, sendo assim eu também ñ consigo inserir, alterar ou remover entidades filhas, o mapeamento many-to-one tem funcionado, consigo alterar qlqr entidade pai, mas eu to esquecendo de algo em meu “simples” mapeamento que ñ faz com que o relacionamento seja bidirecional
o cenário é simlpes, dentre os relacionamentos deste tipo que tenho vo exemplificar com um bem simples: equipamentos podem ter 0 ou N peças, peças podem pertencer a 0 ou 1 equipamento, segue abaixo os mapeamentos (resumidos)
<hibernate-mapping package="nome.do.pacote">
<class name="Equipamento">
<id name="id" type="java.lang.Long">
<generator class="increment" />
</id>
<set name="pecas" inverse="true" cascade="save-update">
<key column="equipamento" />
<one-to-many class="nome.do.pacote.Peca" />
</set>
</class>
</hibernate-mapping>
<hibernate-mapping package="nome.do.pacote">
<class name="Peca">
<id name="id" type="java.lang.Long">
<generator class="increment" />
</id>
<many-to-one name="equipamento" class="nome.do.pacote.Equipamento" />
</class>
</hibernate-mapping>
na classe Equipamento a coleção é instanciada em sua declaração
public class Equipamento extends Model
{
private Set<Peca> pecas = new TreeSet<Peca>();
}
mas durante a execução o variável ‘peca’ tem valor null, e mesmo eu instanciando novamente os dados ñ persistem, oq me faz pensar que o hibernate está ignorando essa propiedade, provavelmente pq eu ñ disse a ele de forma correta que ela existe e como deve se comportar
por enquanto, nesse projeto, ñ tive nenhum relacionamento many-to-many, mas pode ser q esse mesmo problema ocorra também, então gostaria quem alguém me ajudasse q resolver esse problema e também se possível me desse uma explicação da besteira que eu to fazendo
t+