티스토리 뷰

Back-end

[JPA] @MappedSuperclass, @EntityListners

jhkang-dev 2023. 3. 25. 20:14

안녕하세요 강정호 입니다.

 

오늘은 스프링부트의 @MappedSuperclass와 @EntityListners 에 대해서 알아보겠습니다.

 

@MappedSuperclass란?

객체 입장에서 공통 맵핑 정보가 필요할 때 사용한다.

 

[예시]

위와 같이 Article이라는 도메인에 생성자, 생성시각, 수정자, 수정시각이 있다.

이러한 공통정보를 추출해서 공통의 정보로 사용할 때 @MappedSuperclass를 사용한다.

 

이렇게 아래와 같이 새로운 클래스로 생성한다.

AuditingFields라는 새로운 클래스에는 생성자, 생성시각, 수정자, 수정시각 등 공통정보가 들어가 있다.

 

그리고 위 AuditingFields 클래스를 사용하기 위해서는 도메인 객체에서 extends로 상속을 받아야 한다.

 

 

 

@EntityListeners란?

@EntityListeners 는 Entity가 삽입, 삭제, 수정, 조회 등의 작업을 할 때, 전 후에 어떤 작업을 하기 위해서 사용하는 이벤트 처리 어노테이션이다.

댓글