Spring & Spring Boot

[ Spring-Boot ] JPA 공통 Entity 만들기

사과씨앗 2021. 5. 22. 17:30
728x90
반응형

안녕하세요 이번 글에서는 JPA Entity를 생성할 때 공통으로 사용될 Entity를 만들어 보겠습니다.

 

* 공통 Entity를 사용하는 이유

 -> 등록 날짜, 수정 날짜, 등록자, 수정자 등등.. 테이블에 공통적으로 필요한 부분을 각각에 Entity에 설정하는 것이 아닌 하나의 클래스를 만들어 필요한 Entity에 적용해서 사용하기 위함.

 

@MappedSuperclass //상속을 받은 Entity 에서 해당 클래스의 프로퍼티를 사용하기 위하여 선언
@Getter
@EntityListeners(AuditingEntityListener.class) //audit 을 이용하면 자동으로 시간을 매핑하여 데이터베이스의 테이블에 넣어주게 됩니다.
public class BaseEntity {

    @CreatedDate //해당 Entity 가 등록될 경우 자동으로 생성
    @Column(updatable = false) // 해당 컬럼에 대해서 업데이트를 하지 않는다.
    private LocalDateTime createdDate;

    @LastModifiedDate //해당 Entity 가 수정될 경우 자동으로 생성
    private LocalDateTime lastModifiedDate;

    @CreatedBy
    @Column(updatable = false)
    private String createdBy;

    @LastModifiedBy
    private String lastModifiedBy;

 

위처럼 공통으로 사용할 Entity를 생성하여 줍니다. 

 

@Entity
@Getter @Setter
public class Member extends BaseEntity{

    @Id
    @GeneratedValue
    @Column(name = "member_id")
    private Long Id;
    private String username;
    private int age;

    @ManyToOne(fetch = LAZY)
    @JoinColumn(name = "team1_id")
    private Team team;

}

 

그다음 사용될 Entity에 상속받아서 사용하면 됩니다. 간단하죠? ㅎㅎ

 

감사합니다.

728x90
반응형