Page History
...
- ManyToOne : 다대일 관계 매칭정보
- JoinColumn : 외래키를 매핑때 사용함
- mappedBy : 연관관계설정시 주인이 아님을 설정
- OneToMany : 일대다 관계 매핑정보
- OneToOne : 일대일 관계 매칭정보, 어느곳이나 외래키를 가짐
- ManyToMany : 다대다 관계매칭정보, 맵핑테이블을 만들어서 사용하기를 권장
- 연관관계주인 : 외래키가 있는곳이 주인이며 주인만이 수정가능 아닌경우 조회만가능
다대일 모델
위 샘플에서 사용자(User) 데이터 모델링에서, 사용자가 속한 그룹모델링을 구현해보겠습니다.
여러명의 사용자는 한개의 그룹에 속할수 있기때문에, 사용자의 입장에서 다대일 입니다.
즉 사용자의 모델링에서만.., 다대일 설정을 그룹 정보와 맺어주면됩니다.
우리가 원하는 테이블 모델링은 위와같을 것이며, SQL문 없이 JPA를 이용해서만 작성할것입니다.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
@Entity
public class GroupInfo {
@Id
@GeneratedValue
@Column(name = "GROUP_ID")
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
|
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
@Entity
public class User {
@Id
@GeneratedValue
@Column(name = "USER_ID")
private Integer id;
private String name;
private String email;
@ManyToOne
@JoinColumn(name = "GROUP_ID")
private GroupInfo groupInfo;
public GroupInfo getGroupInfo() {
return groupInfo;
}
public void setGroupInfo(GroupInfo groupInfo) {
this.groupInfo = groupInfo;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
|
Panel |
---|
Test 코드 GroupInfo newGroup = new GroupInfo(); |
Info |
---|
다른 진영(.net) 에서도 JPA와 유사하게 데이터를 제어하고 있습니다. Entity Framework |
...