πŸ‘¨β€πŸ‘©β€πŸ‘¦ λ‹€λŒ€μΌ

λ‹€λŒ€μΌ κ΄€κ³„μ˜ λ°˜λŒ€ λ°©ν–₯은 항상 μΌλŒ€λ‹€ 관계고

μΌλŒ€λ‹€ κ΄€κ³„μ˜ λ°˜λŒ€ λ°©ν–₯은 항상 λ‹€λŒ€μΌ 관계닀.

λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ˜ 일(1),λ‹€(N) κ΄€κ³„μ—μ„œ μ™Έλž˜ν‚€λŠ” 항상 ’닀’μͺ½μ— μžˆλ‹€.

λ”°λΌμ„œ 객체 μ–‘λ°©ν–₯ κ΄€κ³„μ—μ„œ μ—°κ΄€κ΄€κ³„μ˜ 주인은 항상 ’닀’μͺ½μ΄λ‹€.

예) νšŒμ›(N)κ³Ό νŒ€(1)이 있으면 νšŒμ› μͺ½μ΄ μ—°κ΄€κ΄€κ³„μ˜ 주인이닀.

1. λ‹€λŒ€μΌ 단방ν–₯ [N:1]

//νšŒμ› μ—”ν‹°ν‹°@Entitypublic class Member{    @Id    @GeneratedValue    @Column(name = "MEMBER_ID")    private String id;    private String username;    @ManyToOne    @JoinColumn(name = "TEAM_ID")    private Team team;    //Getter, Setter...}
//νŒ€ μ—”ν‹°ν‹°@Entitypublic class Team{    @Id    @GeneratedValue    @Column(name = "TEAM_ID")    private String id;    private String name;    //Getter, Setter...}

νšŒμ›μ€ Member.team으둜 νŒ€ μ—”ν‹°ν‹°λ₯Ό μ°Έμ‘°ν•  수 μžˆμ§€λ§Œ λ°˜λŒ€λ‘œ νŒ€μ—λŠ” νšŒμ›μ„ μ°Έμ‘°ν•˜λŠ” ν•„λ“œκ°€ μ—†λ‹€.

λ”°λΌμ„œ νšŒμ›κ³Ό νŒ€μ€ λ‹€λŒ€μΌ 단방ν–₯ 연관관계닀.

@ManyToOne@JoinColumn(name = "TEAM_ID")private Team team;

@JoinColumn(name = "TEAM_ID")λ₯Ό μ‚¬μš©ν•΄ Member.teamν•„λ“œλ₯Ό TEAM_ID μ™Έλž˜ν‚€μ™€ λ§€ν•‘ν–ˆλ‹€.

λ”°λΌμ„œ Member.team ν•„λ“œλ‘œ νšŒμ› ν…Œμ΄λΈ”μ˜ TEAM_ID μ™Έλž˜ν‚€λ₯Ό κ΄€λ¦¬ν•œλ‹€.

2. λ‹€λŒ€μΌ μ–‘λ°©ν–₯ [N:1, 1:N]

λ‹€λŒ€μΌ μ–‘λ°©ν–₯의 객체 μ—°κ΄€κ΄€κ³„μ—μ„œ

싀선이 μ—°κ΄€κ΄€κ³„μ˜ 주인(

Member.team