Ola pessoa, bom dia a todo!!!
Estou com um problema um pouco chato com Hibernate Annotations, já procurei no forum e encontrei problemas parecidos, mais mesmo assim não consegui resolver de fato.
Bem, meu problema ná na hora de fazer com que o Hibernate faça o cascade para salvar um objeto, tenho um objeto do tipo ITEM que tem uma associação OneToMany com o objeto OFERTA.
Quando executo o método save(ITEM) um item é salvo mais a lista de OFERTA não, deste modo o cascade não esta funcionado;
Segue o codigo:
Classe ITEM
@Entity
@Table(name = "ITEM")
@SequenceGenerator(name = "ID_ITEM_SEQ", sequenceName = "ID_ITEM_SEQ")
public class Item {
@Id
@GeneratedValue(generator = "ID_ITEM_SEQ", strategy = GenerationType.AUTO)
private int id;
@Column(name = "NOME")
private String nome;
@Column(name = "PRECO_INICIAL")
private float precoInicial;
@OneToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH }, mappedBy = "item", targetEntity = br.com.modelo.dominio.Oferta.class)
private Set<Oferta> oferta = new HashSet<Oferta>();
//construtor, get, set ...
}
Classe OFERTA
@Entity
@Table(name = "OFERTA")
@SequenceGenerator(name = "ID_OFERTA_SEQ", sequenceName = "ID_OFERTA_SEQ")
public class Oferta {
@Id
@GeneratedValue(generator = "ID_OFERTA_SEQ", strategy = GenerationType.AUTO)
@Column(name = "ID_OFERTA")
private int id;
@Column(name = "VALOR")
private float valor;
@ManyToOne(targetEntity = br.com.modelo.dominio.Item.class)
@JoinColumn(name = "ID_ITEM", nullable = false)
private Item item;
//construtor, get, set ...
}
Salvando o objeto
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
Start s = new Start();
session.save(s.createItem());
t.commit();
session.close();
HibernateUtil.shutdown();
}
private Item createItem(){
Item i = new Item();
Oferta o = new Oferta();
Set<Oferta> s = new HashSet<Oferta>();
//seta a oferta
o.setValor(35);
o.setItem(i);
//adiciona o HashSet
s.add(o);
//seta o item
i.setNome("Qualquer coisa");
i.setPrecoInicial(22);
i.setOferta(s);
return i;
}
Estou utilizando as seguinte jar’s;
commons-collections-3.2.1.jar
commons-logging-1.1.jar
dom4j-1.6.1.jar
ejb3-persistence.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate-core.jar
javassist-3.9.0.GA.jar
jta-1.1.jar
log4j-1.2.15.jar
postgresql-8.3-605.jdbc2.jar
slf4j-api-1.5.8.jar
slf4j-jcl-1.5.8.jar
com java 1.6.
Bom pessoal é isso ai, se puderem me ajudar, desde já os meus agradecimentos.