plentz,
Não estou conseguindo fazer funcionar, já descobri qual é o erro, porém não sei como resolve-lo.
Eu tenho a seguinte classe:
@Entity(name="Shinigami")
@Table(name="tb_brian_shinigami")
public class Shinigami {
@Id
@GeneratedValue
@Column(name="id_shinigami")
private int id;
@Column(name="txt_nome")
private String nome;
/*@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER, targetEntity=Shinigami.class, mappedBy="Shinigami")
private Set emails = new HashSet();
*/
[b]@ManyToMany(targetEntity=hiberapp0.Shinigami.class, cascade={CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(
name="tb_brian_shinigami_evento",
joinColumns={@JoinColumn(name="id_evento", table="tb_brian_evento")},
inverseJoinColumns = @JoinColumn(name="id_shinigami", table="tb_brian_shinigami")
) [/b]
private Set eventos = new HashSet();
Ele cria a tabela, porem ele cria da seguinte forma:
CREATE TABLE tb_brian_shinigami_evento
(
id_evento int4 NOT NULL,
id_shinigami int4 NOT NULL,
CONSTRAINT tb_brian_shinigami_evento_pkey PRIMARY KEY (id_evento, id_shinigami),
CONSTRAINT fkfd7434b9210b4ff5 FOREIGN KEY (id_shinigami)
REFERENCES tb_brian_shinigami (id_shinigami) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
[b]CONSTRAINT fkfd7434b99ec330ed FOREIGN KEY (id_evento)
REFERENCES tb_brian_shinigami (id_shinigami) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION[/b]
)
E o problema está ai, o id_evento tem referenciar a tabela tb_brian_evento e não a tabela tb_brian_shinigami. Porem não sei como fazer.
Esse é um problema, o outro é que eu não sei como fazer para mapear um relacionamento 1 para muitos (Ex. Shinigami pode ter varios emails, criar um tabela no banco com id_shinigami, e um campo email)
Já agradeço a ajuda.