Persistencia não ocorre com CascadeType.ALL

2 respostas
ATEN

Estou trabalhando com JPA2 + hibernate4 e não consigo fazer a persistencia em cascata da minha classe
Ao salvar classe Cesta gostaria de salvar tb a classe categoria direito, mas ele salva somente a classe cesta

public class Cesta implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	private int idCesta;


	@OneToMany(mappedBy="cesta",cascade= CascadeType.ALL)  //Ao salvar essa classe quero que a categoria direito seja salva tb 
	private List<Categoriadireito> categoriadireitos;

//getters e setters ...
public class Categoriadireito implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	private int idCategoriaDireito;


        @ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="Cesta_idCesta", nullable=false)
	private Cesta cesta;

Estou testando assim e ele não salva as duas classes juntas

Cesta c = new Cesta();
Categoriadireito d = new Categoriadireito();
CestaDAO = cestaDAO = new cestaDAOImpl();

c.setNome("nome");
d.setCusto("custo");
d.setCesta(c);

cestaDAO.salvar(c); //salva no banco de dados somente a classe cesta

Não sei o que estou fazendo de errado, desde já agradeço a ajuda!!
[]s

2 Respostas

Hebert_Coelho

Vc tentou colocar o cascade na cesta?
Pra que isso? @ManyToOne(fetch=FetchType.EAGER)

Você precisa estudar melhor sobre JPA cara.

ATEN

Mexo a muito pouco tempo com jpa. Sei que necessito estudar mais, por isso recorri a sabedoria de vcs para entender melhor como funciona

Na classe cesta coloquei cascade

@OneToMany(mappedBy="cesta",cascade= CascadeType.ALL) 
 private List<Categoriadireito> categoriadireitos;

Mas ao persistir a classe cesta , a classe direito nao é persistida no banco junto com ela
E aquele @ManyToOne(fetch=FetchType.EAGER) esta totalmente errado mesmo

Criado 29 de julho de 2012
Ultima resposta 29 de jul. de 2012
Respostas 2
Participantes 2