본문 바로가기

Springboot

[Springboot] 일대다 관계 - @ManyToOne

배경

  • 한 사람이 여러 게시글을 작성할 수 있으며, 한 게시글은 한 사람에 의해 작성된다.
  • 한 게시글은 여러 댓글을 가질 수 있으며, 한 댓글은 한 게시글에 속한다. 
  • 한 사람이 여러 댓글을 작성할 수 있으며, 한 댓글은 한 사람에 의해 작성된다.

작성자 / 게시글 / 댓글의 관계

  • 작성자 --- 게시글 => 1 : N (일대다)
  • 게시글 --- 댓글 => 1 : N (일대다)
  • 작성자 --- 댓글 => 1 : N (일대다)

@ManyToOne

  • 1 : N 관계에서 N쪽 클래스에 @ManyToOne을 갖는 속성 지정

Board

@Entity
public class Board {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String title;

    private String content;
    
    @ManyToOne
    private Writer writer; // 작성자
}

Reply

@Entity
public class Reply {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    
    private String content;
    
    @ManyToOne
    private Writer writer; // 작성자
    
    @ManyToOne
    private Board board; // 게시글
}

Writer

@Entity
public class Writer {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String userName;
}