Erro - @OneToMany -Unidirecional

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 ?

Sim.

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

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

Você chegou a ler o que eu escrevi ?

Tenta isso:

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

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

@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 = “”)