eu já sei fazer o mapeamento, só não sei como seria o jeito de salvar, alguém pode me explicar?
grato
dúvida sobre one-to-many no hibernate
2 Respostas
:arrow: Se o item que você quer incluir na lista já é persistente, basta recuperar o objeto dono da lista, adicionar o item, pegar a session e salvar o objeto.
:arrow: Se o item que você quer incluir ainda não está salvo, salve-o primeiro, caso contrário o Hibernate não vai refletir o estado dos seus objetos no banco. Após salvar, faça como no item anterior.
Imaginando que sua classe tenha uma lista de objetos da classe Item e exponha um método addItem(Item i) para incluir novos itens nesta lista, algo como
public class SuaClasse implements Serializable {
//...
@OneToMany
private List<Item> itens = new ArrayList<Item>();
//...
public void addItem(Item i) {
itens.add(i);
}
}
Se o item já estiver persistido
SuaClasse seuObjeto = session.load(SuaClasse.class, id);
seuObjeto.addItem(novoItem);
session.saveOrUpdate(seuObjeto);
Se o item for transiente
session.save(novoItem);
SuaClasse seuObjeto = session.load(SuaClasse.class, id);
seuObjeto.addItem(novoItem);
session.saveOrUpdate(seuObjeto);
session.
mas de qualquer modo no xml está dando um erro, não sei o que é olha o xml.
<property name="data" type="string" column="DATA" />
<property name="valorTotal" type="double" column="VALORTOTAL" />
<property name="ativo" type="boolean" column="ATIVO" />
<list name="itens">
<key column="PEDIDOITEM" />
<one-to-many class="PedidoItem"/>
</list>
eu não entendi isso aqui -> session.load(SuaClasse.class, id);
desculpe a pergunta boba mas eu sou novato ainda!