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
반응형
'Spring & Spring Boot' 카테고리의 다른 글
[ Spring-Boot ] JPA Entity 사용하기 (0) | 2021.05.23 |
---|---|
[ Spring-Boot ] JPA @GeneratedValue 사용하기 (0) | 2021.05.22 |
[ Spring-Boot ] @Controller 에서 파라미터 받기 (0) | 2021.05.22 |
[ Spring-Boot ] Mybatis DB 커넥션 설정하기 (0) | 2021.05.19 |
[ Spring-Boot ] @ControllerAdice 사용하여 예외처리 하기 2편 (0) | 2021.05.19 |