2017-12-13 20 views
0

私はSpringBlockを使用してWebアプリケーションを開発しています。次のように私は、データベーステーブルを持っている:SpringデータJPA多対多テーブル関係の注釈

role 
---- 
id name 
1 admin 
2 user 
3 employee 

employee 
-------- 
id name 
1 Juan 
2 Pedro 
3 Marcos 
4 Lucas 

user 
---- 
id employee_id role_id  username password 
1 1   1   juan1  hello 
2 1   3   juan2  hello 
3 2   2   pedro1  hello 
4 2   3   pedro2  hello 
5 3   3   marcos  hello 
6 4   3   lucas  hello 

そして次は、ドメインオブジェクトのクラスです:

public class Role { 
... 
    @ManyToMany(mappedBy = "roles") 
    private Set<Employee> employees; 

--- 
public class Employee { 
... 
    @ManyToMany(cascade = CascadeType.ALL) 
    @JoinTable(name = "user", 
     joinColumns = @JoinColumn(name = "employee_id", referencedColumnName = "id"), 
     inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id") 
    ) 
    private Set<Role> roles; 

私はユーザークラスで使用するために必要なものを注釈を思ったんだけど。私はこれに続くtutorialです。しかし、3番目のテーブル(book_publisher)には、外部キー以外のフィールドがありません(book_id,publisher_id)ので、これには3クラスはありません。

ありがとうございます。

答えて

1

ユーザーは、アトリビュートとのアソシエートされた関連付けであるため、EmployeeからUserへの多くの関連付けが必要です。

ユーザーエンティティは、主キーとしてコンポジットIDを持ちます。

Thorbenヤンセンから、そのトピックに関する優れた記事をご覧ください:迅速な対応のための https://www.thoughts-on-java.org/many-relationships-additional-properties/

+0

感謝を。私はそれを調べます。 –

+0

@JulezJupiter私の答えが役に立ったら、あなたが投票したり、正しい答えとしてマークしてくれたら大変感謝しています。ありがとうございました。 –

+0

ちょうど私の参照サイトはあなたが与えたリンクに似てポストがあることが判明:https://hellokoding.com/jpa-many-to-many-extra-columns-relationship-mapping-example-with-spring-boot -maven-and-mysql / –