JPA 연관관계

이석준·2022년 6월 28일
0

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()
가 있지만,, 잘안쓰고 
중간에 테이블을 하나 놓고 쓴다.




0개의 댓글