Erro - @OneToMany -Unidirecional

5 respostas
lanlico

Olá, estou com um problema.

Primeiramente o erro gerado:

javax.ejb.EJBTransactionRolledbackException: nested exception is: javax.ejb.EJBException: See nested exception; nested exception is: <openjpa-1.2.3-SNAPSHOT-r422266:1172941 fatal user error> org.apache.openjpa.persistence.ArgumentException: You have supplied columns for “minha.casa.bh.infra.entidade.CadastroConta.saldosPrevidenciaPrivada”, but this mapping cannot have columns in this context.

Minhas duas Tabelas:

desc spv
Name Null Type


SPVNUMPPS NOT NULL NUMBER(8)
CTANUM NOT NULL NUMBER(13)
CTAVAR NOT NULL NUMBER(3)
CLTCODIPC NOT NULL NUMBER(8)
SPVSLD NOT NULL NUMBER(17,2)
SPVTIM NOT NULL NUMBER(10)

desc cnt
Name Null Type


CNTNUM NOT NULL NUMBER(13)
CNTVAR NOT NULL NUMBER(3)
PTACOD NOT NULL NUMBER(4)
PTAPST NOT NULL NUMBER(4)
CNTTIP NOT NULL NUMBER(1)
CNTDATABR NOT NULL DATE
CNTDATULTMOV NOT NULL DATE
CNTIDCFEP NOT NULL NUMBER(1)
CNTTIM NOT NULL NUMBER(10)

O mapeamento que faço na classe CadastroConta

@OneToMany(cascade = {CascadeType.ALL})
   @JoinColumns({@JoinColumn(name = "cntNum", referencedColumnName = "ctaNum"),
      @JoinColumn(name = "cntVar", referencedColumnName = "ctaVar")})
   private Collection<SaldosPrevidenciaPrivada> saldosPrevidenciaPrivada;

Alguma dica ?

5 Respostas

Rodrigo_Sasaki

Sim.

Leia isso: http://uaihebert.com/?p=1622&page=20

lanlico

Já li e não vi nada que possa me ajudar.

Você chegou a ler o que eu escrevi ?

novato25

Tenta isso:

@ManyToOne(cascade = {CascadeType.ALL}) @JoinColumns({@JoinColumn(name = "cntNum", referencedColumnName = "ctaNum"), @JoinColumn(name = "cntVar", referencedColumnName = "ctaVar")}) private Collection<SaldosPrevidenciaPrivada> saldosPrevidenciaPrivada;

lanlico

Eu não quero ManyToOne… Preciso de OneToMany Unidirecional, com duas chaves.

M
@ElementCollection(targetClass = String.class)

Utilize essa annotation sobre a annotation do relacionamento, outra coisa a segunda annotation @JoinColumn precisa apontar para o lado do relacionamento que não é o dono. como:

inverseJoinColumns = @JoinColumn(name = “”)

Criado 21 de dezembro de 2012
Ultima resposta 24 de dez. de 2012
Respostas 5
Participantes 4