2017-06-07 10 views
0

私はJSFでプロジェクトを開発していますが、このエンティティを下に維持しようとしていますが、エラーメッセージが表示されます。私が関係を作成する前に、Contaクラスは正しく存続していましたが、Transacaoを持つMany To Oneでは、私はできません。エンベディッドIDを持つエンティティを多対1の関係に維持するとエラーメッセージが表示される

これはTransacaoクラスです:

@Id 
@GeneratedValue 
private long id; 
private Conta contaOrigem; 
private String agenciaDestino; 
private String contaDestino; 
private String cpfDestino; 
... 

これはコンタクラスです:

public class Conta { 

@EmbeddedId 
private DadosConta contaUsuario = new DadosConta(); 
@NotEmpty(message="Senha não pode estar em branco") 
private String senha; 
@NotEmpty(message="Selecione uma opção") 
private String tipoConta; 
private double saldo; 
private Usuario usuario = new Usuario(); 
@OneToMany(mappedBy="contaOrigem", fetch = FetchType.LAZY) 
private List<Transacao> transacoes = new ArrayList<>(); 
... 

とDadosConta(組み込みIDクラス):

@Embeddable 
public class DadosConta implements Serializable { 

private static final long serialVersionUID = -7021727065659352073L; 
@NotEmpty 
private String agencia; 
@NotEmpty 
private String conta; 
... 

そして最後に、このエラー:

Foreign key (FK_8k5jlptboiq6xm4oopg9jnh2l:Transacao [contaOrigem])) must have same number of columns as the referenced primary key (conta [agencia,conta]) 

私はエラーメッセージが「明示的」であることを知っていますが、EmbeddedIdと多対1の関係をどのように維持できるのか分かりませんが、回避策はありますか?

ありがとうございます。

答えて

0

Transacaoクラスでこれを試して、双方向結合を完了してください。

@ManyToOne 
@JoinColumns({@JoinColumn(name = "agencia"), @JoinColumn(name = "conta")}) 
private Conta contaOrigem; 
+0

ありがとうございました! –

関連する問題