다음의 두 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
반응형
'Computer Science > Database' 카테고리의 다른 글
좋은 학술 데이터베이스란 | 좋은 학술 데이터베이스의 기준 (Data, Web interface 측면) (0) | 2021.06.15 |
---|---|
[Python] MySQL connector를 이용한 Database 연결 (0) | 2021.03.09 |
[DBMS] 관계형 DBMS의 개념과 NoSQL과의 비교 (0) | 2021.02.15 |
[Error] java.sql.SQLException: The server time zone value 'KST' is unrecognized (0) | 2021.02.10 |
[Java] 자바 어플리케이션에서 데이터베이스에 접속하는 방법 (Java, JDBC API, JDBC driver, MySQL) (0) | 2021.02.10 |