Procurei aqui no forum achei algumas coisas, mas não resolveu meu problema…
Tenho a tabela produto:
@Entity
public class Produto{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id
private String nome;
@ManyToOne(fetch = FetchType.LAZY)
private Produto produto;
@OneToMany(mappedBy="produto", fetch=FetchType.LAZY, cascade=CascadeType.ALL)
private List<Produto> produtos;
//getters and setters
}
Com este modelo acima, a tabela ficaria assim:
id
nome
produto_id
Então tenho meu DAO
public class ProdutoDao {
....
public void salva() {
Produto p1 = this.carrega(1);//Produto Pão já cadastrado
Produto p2 = this.carrega(2);//Produto Salsicha já cadastrado
Produto produto = new Produto();
produto.setNome("HotDog");
p1.setProduto(produto);
p2.setProduto(produto);
produto.getProdutos().add(p1);
produto.getProdutos().add(p2);
this.session.merge(produto);
}
....
}
Executando dessa forma, a tabela fica assim:
id, nome, produto_id
3, HotDog, NULL
Ele não cria os relacionamento com os produtos 1 e 2, utilizando essas mesmas annotations para relacionamentos normais funciona tranquilamente. Mas nesse auto-Relacionamento não rola, já tentei dar um @JoinColumn(name=“produto_id”) mas não mudou nada.
Alguém já passou por isso e poderia me dar uma luz? Obrigado.