Ahe galera!
Estou montando um sistema para a facul com JPA etc.
Pulando para o problema, o caso é o seguinte: Tenho um objeto Requisito que possui diversos atributos. Quando vou persistir um novo requisito com novos atributos, o hibernate executa o insert do requisito, um insert para cada atributo e por fim, executa um ultimo insert associativo e é nesse que da o erro. Acredito que o erro esta na maneira que anotei o relacionamento.
Grato desde já.
@Entity
@Table(name = "tbl_requisito")
public class Requisito extends Entidade {
/**
* Numero do requisito
*/
@Id
@Column(name = "num_requi")
@GeneratedValue(strategy = GenerationType.AUTO)
protected int numero;
@OneToMany(targetEntity = AtributoRequisito.class, cascade = CascadeType.ALL)
@JoinTable(name = "tbl_atributo", joinColumns = @JoinColumn(name = "num_requi"), inverseJoinColumns = @JoinColumn(name = "num_atrib"))
protected Collection<AtributoRequisito> atributos;
// GETS e SETS
}
@Entity
@Table(name = "tbl_atributo")
public class AtributoRequisito extends Entidade {
/**
* Numero do atributo no banco de dados
*/
@Id
@Column(name = "num_atrib", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private int numero;
/**
* Requisito que possui o atributo
*/
@ManyToOne(targetEntity = Requisito.class, optional = true, fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
@JoinColumn(name = "num_requi", nullable = true)
private Requisito requisito;
// GETS e SETS
}
Comandos Gerados:
insert
into
tbl_requisito
(num_requi, dat_regis, ind_ativo, cod_user, num_estad, tex_local_arqui, nom_requi, nom_arqui, num_proje, num_funci, num_tipo_requi)
values
(default, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
insert
into
tbl_atributo
(num_atrib, dat_regis, ind_ativo, cod_user, num_requi, num_atrib_tipo, num_valor)
values
(default, ?, ?, ?, ?, ?, ?)
into
tbl_atributo
(num_requi, num_atrib)
values
(?, ?)
O ultimo comando que da problema. Não deveria ser executado.
Diagrama das tabelas em anexo.