Oi pessoal,
pesquisei, pesquisei e nada. Resolvi postar meu problema:
Tenho duas classes: Pessoa e Departamento. No banco tenho ainda a tabela pessoa_departamento que guarda as chaves das duas tabelas, onde pessoa tem vários departamentos e departamentos tem várias pessoas.
Vou postar o meu código (somente o que interessa);
Pessoa:@Entity
@Table(name = "pessoa", uniqueConstraints = {})
public class Pessoa implements Serializable {
/** Código da pessoa */
@Id
@GeneratedValue (strategy=GenerationType.IDENTITY)
@Column(name="PesCodigo")
private int codigo;
/** Nome */
@Column(name="PesNome")
private String nome;
/** Departamentos */
@ManyToMany(mappedBy="pessoaList", cascade=CascadeType.ALL)
private List<Departamento> departamentoList;
//continua...
@Entity
@Table(name = "departamento", uniqueConstraints = {})
public class Departamento implements Serializable {
/** Código do departamento */
@Id
@GeneratedValue (strategy=GenerationType.IDENTITY)
@Column(name="DepCodigo")
private int codigo;
/** Nome */
@Column(name="DepNome")
private String nome;
@ManyToMany
@JoinTable(name="pessoa_departamento",
joinColumns=
@JoinColumn(name="PedDepCodigo", referencedColumnName="DepCodigo"),
inverseJoinColumns=
@JoinColumn(name="PedPesCodigo", referencedColumnName="PesCodigo")
)
private List<Pessoa> pessoaList;
//continua ...
Problema: :cry:
Preencho um objeto pessoa com todos os atributos, inclusive seu list de departamentos, quando vou dar um merge, os dados de pessoa mudam, mas os relacionamentos com departamento não são inseridos!!!
E quando vou dar um persist, dá um erro:
detached entity passed to persist: Departamento