Boa tarde grupo.
Novamente estou
escrevendo por um problema com JPA.
Eu tenho duas tabelas
que se relacionam many-to-many através de uma terceira tabela. Até
ai tranquilo, só que ambas as tabelas possuem chave primaria
compostas.
Já tentei usando ManyToMany pra ligar direto as duas
tabelas e criando essa terceira entidade para fazer um ManyToOne e
depois OneToMany (Como segue o exemplo), mas em todos os casos o
problema é o mesmo. Ele diz que preciso declarar todas as chaves
primarias com o JoinColumns, mas eu só tenho uma chave primaria em
comum nas tabelas, então, quando executo uma consulta dá uma
Exception dizendo que as outras duas chaves não foram encontradas na
tabela intermediaria.
Alguém já passou por
isso e teria algumas ideia?
Vou escrever as classes
do cenário e as tabelas do banco seguem a mesma logica.
public class TabelaA
implements Serializable {
@EmbeddedIdprotected TabelaAPK
tabelaAPK;
@OneToMany(cascade =
CascadeType.ALL, mappedBy = tabelaA")private List<TabelaC>
tabelaCList;
… }
public class TabelaAPK
implements Serializable {
@Column(name = "ida") private int ida; @Column(name =
"idoutro") private int
idoutro; @Column(name =
"idmaisum") private int
idmaisum;
… }
O mesmo para a tabela B
public class TabelaB
implements Serializable {
@EmbeddedIdprotected TabelaBPK
tabelaBPK;
@OneToMany(cascade =
CascadeType.ALL, mappedBy = tabelaB")private List<TabelaC>
tabelaCList;
… }
public class TabelaBPK
implements Serializable {
@Column(name = "idb") private int idb; @Column(name =
"idqualquer") private int
idqualquer; @Column(name =
"idoutroqualquer") private int
idoutroqualquer;
… }
E a tabela que une as
duas
public class TabelaC {
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="ida", referencedColumnName="ida", insertable=false,updatable=false )
private TabelaA
tabelaA;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="idb",referencedColumnName="idb",insertable=false,updatable=false)
private TabelaB
tabelaB;
}
[As partes desta mensagem que não continham texto foram removidas]
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br







0 comentários:
Postar um comentário