2017-12-13 1 views
0

스프링 부트를 사용하여 웹 애플리케이션을 개발 중이다. 다음과 같이 나는 데이터베이스 테이블이 있습니다스프링 데이터 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을 팔로우하고 있습니다. 그러나 세 번째 테이블 (book_publisher)에는 외래 키 (book_id, publisher_id) 이외의 필드가 없으므로 세 번째 클래스가 없습니다.

감사합니다.

답변

1

사용자가 소위 속성이있는 연관성이 있기 때문에 Employee에서 User까지 many 연관이 필요합니다.

사용자 엔티티는 복합 ID를 기본 키로 사용합니다.

쏘븐 얀센에서 해당 주제에 대한 좋은 기사를 검색 할 : 빠른 응답 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 / –

관련 문제