import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import java.time.LocalDateTime;
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Getter
public class Board {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
private String content;
@CreatedDate
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime modifiedDate;
public void update(String title, String content) {
this.title = title;
this.content = content;
this.modifiedDate = LocalDateTime.now();
}
}
어노테이션 종류
어노테이션 | 기능 |
---|
@Getter | Getter를 자동으로 만들어준다. |
@Builder | Builder 패턴을 자동으로 만들어준다. |
@NoArgsConstructor | 기본 생성자를 만들어준다. |
@AllArgsConstructor | 모든 필드에 대한 생성자를 만들어준다. |
나머지 | JPA 어노테이션 종류 |
Method
- update: Setter가 권장되지 않으므로 public 접근 제어자를 가진 update를 사용해서 title과 content를 변경해 주었다. modifiedDate를 변경한 이유는 수정할 때마다 날짜를 저장해야 되기 때문이다.