개인프로젝트/피그스페이스

BaseEntity 생성하기

DEV_HEO 2022. 11. 17. 21:21
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