jpa (java persistence api)
객체와 테이블을 매핑해준다.
1:1
@OneToOne
@JoinColumn(name= "LOCKER_ID")
private Locker locker;
@OneToOne(fmappedBy = "locker")
private Member member;
N:1
보통 다대일 양방향 매핑을 한다.
N 객체
@Entity
@Data
@Table(name ="MEMBER")
public class Member {
@Id()
@Column(name = "MEMBER_ID")
private String id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private int age;
@ManyToOne
@JoinColumn(name="TEAM_ID")
private Team team;
@Override
public String toString(){
return id +name;
}
public void changeTeam(Team team){
if(this.team!=null)
{
this.team.getMembers().remove(this);
}
setTeam(team);
}
}
1 객체
@Data
@Entity
@Table(name="TEAM")
@ToString
@NoArgsConstructor
public class Team {
@Id
@Column(name="TEAM_ID")
private String id;
@Column(name="TEAM_NAME")
private String name;
@OneToMany(fmappedBy = "team")
private List<Member> members = new ArrayList<>();
public Team(String teamId, String teamName) {
this.id = teamId;
this.name=teamName;
}
}
N:N
@ManyToMany
@JoinTable()
가 있지만,, 잘안쓰고
중간에 테이블을 하나 놓고 쓴다.