320x100
처음 Entity를 만들 땐 BaseEntity를 굳이 생성할 필요를 못느꼈는데,
JPA를 사용하며 개발하다보니
Entity마다 공통으로 쓰이는 변수와, 공통으로 상속하는 인터페이스 들이 있어서 BaseEntity를 만들게 되었다.
수정사항이 있을 때마다 수정할 예정이다.
1. implements Persistable
save 가 단순히 create인 줄 알고 사용하다가 알게된 인터페이스
class abstract BaseEntity implements Persisable<String>{
@CreatedDate
private LocalDateTime createdDate;
@Override
public boolean isNew() {
return createdDate == null;
}
}
getId는 BaseEntity를 상속하는 클래스에서 반드시 override해줘야 한다.
다른 글에서는 Id도 공통 변수로 사용하지만,
필요없는건 굳이 선언하지 않는다.
ExampleEntity
public class UserInfo extends BaseEntity {
@Id
private String userId;
@Column
private String userNm;
@Column
private String phoneNo;
....
// 반드시 override!
@Override
public Integer getId() {
return HashUtil.makeHash(this.userNm, this.userId, this.phoneNo);
}
}
필요에 의해 직접 작성하는 것이 중요하다는 것을 느낀 포스팅이었다.
왜 필요한지 생각해보고, 코드를 복사만 하지 않는 습관을 들이자....
320x100
'개인프로젝트 > 피그스페이스' 카테고리의 다른 글
[Spring Boot] Ggmail로 인증 링크를 포함한 메일 보내기 (0) | 2022.10.12 |
---|---|
[AWS] EC2에 SpringBoot 프로젝트 배포하기 (0) | 2022.10.11 |
[AWS] 프로덕션 배포-① 설정 (0) | 2022.07.21 |