2017-03-16 12 views
1

私は、CustomerとCustomerTransactionという2つのエンティティを持っています。私は、CustomerTransaction内に2つのCustomer IDを外部キーとして格納できるようにしたいと考えています(トランザクションを開始するCustomer用とCustomerを受け取るためのもの)。また、各Customerオブジェクトには、それらがリンクされているすべてのCustomerTransactionsのリストが含まれている必要があります。同じエンティティからの複数の外部キー? (JPA Hibernate)

Customer.java

@Entity 
public class Customer { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    private String firstName; 
    private String lastName; 

    //@ManyToOne ? 
    private List<CustomerTransaction> customerTransaction; 

    //getters and setters 
} 

CustomerTransaction.java各トランザクションが開始すると、受信顧客の外部キーIDを含むように私はJPAのアノテーションを設定するにはどうすればよい

@Entity 
public class CustomerTransaction { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    //@OneToMany ? 
    private Customer initiater; 
    //@OneToMany ? 
    private Customer receiver; 

    private String transactionDetails; 

    //getters and setters 
} 

答えて

1

initiaterおよびreceiverにはManyToOneという注釈を付ける必要があります(多くのトランザクションは1つのイニシエータによって開始されます)。

そして、あなたはCustomerで2 OneToManyを必要とする:開始tranactions(OneToMany(mappedBy = "initiater"))ごとに1つ、受信した取引のための1:(OneToMany(mappedBy = "receiver")

あなたはただ一つのリストを持つことはできません(と、それはとにかく、おそらく望ましくありません。 )

+0

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

関連する問題