항해99 DAY35 [생성자 annotation]

Colleen·2023년 2월 19일
0
post-thumbnail
post-custom-banner

AllArgsConstructor

  • 클래스의 모든 필드에 대한 생성자를 자동으로 생성한다.

Entity에서 자주 볼 수 있는 annotation이다. 그리고 생성자를 만들지 않아도 자동으로 만들어주는 신기한 기능을 가지고 있다. 이걸 쓴 코드는 아래 보여주고자 한다.

package com.sparta.hanghaeboard.entity;

import com.sparta.hanghaeboard.dto.CommentRequestDto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.*;

@Entity
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class Comment extends Timestamped{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String content;

    @ManyToOne
    @JoinColumn(name = "user_id")
    private User user;
    @ManyToOne
    @JoinColumn(name = "post_id")
    private Board board;

    public Comment(User user, Board board, String content){
        this.user = user;
        this.board = board;
        this.content = content;
    }

    public  void update(CommentRequestDto requestDto){
        this.content = requestDto.getContent();
    }


}

RequiredArgsContructor

  • 클래스에서 Final필드에 대한 생성자를 자동으로 생성한다.
  • final필드는 클래스에서 초기화를 하던지 객체 생성시 생성자를 이용해 꼭 초기화해줘야 한다고 한다.

이것도 자주 쓰는 annotation인데 과제를 하면서 전혀 모르고 사용했다.

profile
이상한 나라의 개발하는 예대생
post-custom-banner

0개의 댓글