Computer Science/Database

[Java] Java에서 Join 기능 이용하기 (Spring, Hibernate)

2021. 6. 3. 15:17

다음의 두 entity를 참고하면 Java에서 Join 기능을 어떻게 써볼 수 있을지 감이 온다.

 

Member.java

@Entity
public class Member {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer member_id;
	
    @Column
    private String member_name;
    
//  @Column
//  private Integer team_id;

    @ManyToOne(targetEntity = Team.class)
    @JoinColumn(name = "team_id")
    private Team team;
	
    // then getters/setters
}

 

Team.java

@Entity
public class Team {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer team_id;
	
    @Column
    private String team_name;
	
    // then getters/setters
}

 

  Database에서 member table과 team table이 1:N (일대다) 관계일 때, 위와 같이 entity를 작성하면 member를 부를 때 자동으로 연결된 team entity가 따라온다.

  주의해야 되는 점은 Member.java에 team_id column이 없어야 한다는 점이다. team_id column이 있을 경우 다음의 에러가 발생한다:
  "Caused by: org.hibernate.MappingException: Repeated column in mapping for entity"

 

  만약 member에서 team_id를 호출하고 싶다면 다음과 같이 할 수 있다.

member.getTeam().getTeam_id()

 

Reference

 

 

728x90
반응형