@Getter@Entity@NoArgsConstructor@Table(name="board")publicclassBoardEntityextendsTimeEntity{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;@Column(length=10,nullable=false)privateStringwriter;@Column(length=100,nullable=false)privateStringtitle;@Column(columnDefinition="TEXT",nullable=false)privateStringcontent;/*빌더패턴으로 생성
#setter 대신 사용 (안전성 보장)*/@BuilderpublicBoardEntity(Longid,Stringwriter,Stringtitle,Stringcontent){this.id=id;this.writer=writer;this.title=title;this.content=content;}}
타임 엔티티 구현
@Getter@MappedSuperclass'''#자식클래스에게매핑정보상속'''@EntityListeners(AuditingEntityListener.class)'''#JPA에게기능사용알림'''publicabstractclassTimeEntity{#생성일@CreatedDate@Column(updatable=false)privateLocalDateTimecreateDate;#수정일@LastModifiedDateprivateLocalDateTimemodifiedDate;""" 마지막으로 JPA Auditing 활성화를 위해
Application에서 @EnableJpaAuditing 어노테이션을 추가해줍니다"""}
DTO 구현
@Getter@Setter@ToString@NoArgsConstructorpublicclassBoardDto{"""DTO 사용이유
중요한 정보를 노출 시키지 않고 원활한 통신 촉진 가능"""privateLongid;privateStringwriter;privateStringtitle;privateStringcontent;privateLocalDateTimecreatedDate;privateLocalDateTimemodifiedDate;'''DTO에서필요한부분을엔티티로변환메서드'''publicBoardEntitytoEntity(){BoardEntityentity=BoardEntity.builder().id(id).writer(writer).title(title).content(content).build();returnentity;}@BuilderpublicBoardDto(Longid,Stringwriter,Stringtitle,Stringcontent,LocalDateTimecreatedDate,LocalDateTimemodifiedDate){this.id=id;this.writer=writer;this.title=title;this.content=content;this.createdDate=createdDate;this.modifiedDate=modifiedDate;}}
댓글남기기