quarta-feira, 18 de abril de 2012

[java-br] Erro ao mapear ManyToMany com JPA 2 EclipseLink

·

 

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]

__._,_.___
Atividade nos últimos dias:
Para sair da lista, envie email para: java-br-unsubscribe@yahoogroups.com
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br
Não passe mais um Dia dos Namorados sozinho(a). Conheça o Y! Encontros.

SUPEROFERTA HP PROBOOK 6360

Quer conhecer gente nova e interessante? Só depende de você.
.

__,_._,___

0 comentários:

Pague com LPs do Mister Colibri

Pague com LPs do Mister Colibri
Quer comprar celular,Tablet,pen drive, GPS e muito outros produtos e ainda podendo pagar tudo em LPs ?Pois saiba que isso é possível,basta você visitar o site downloadstotal.com e realizar a sua compra com toda tranquilidade e segurança!!!

Hora

Online

Arquivo do Blog