인프런 - 실전! 스프링 데이터 JPA


엔티티를 생성, 변경할 때 변경한 사람과 시간을 추적하고 싶다면?

  • 등록일
  • 수정일
  • 등록자
  • 수정자

 

순수 JPA 사용

1. baseEntity 생성

-> 기존 엔티티에서 baseEntity의 속성만을 상속받게 하기 위해서는 @MappedSuperclass 어노테이션 적용

baseEntity 생성
@MappedSuperclass 어노테이션 적용

 

2. 기존 엔티티 상속 - 무슨 엔티티건 Base Entity를 상속받으면 된다.

기존 Entity 상속 처리

3. 테스트


스프링 데이터 JPA

 

1. 설정

  • @EnableJpaAuditing 스프링 부트 설정 클래스에 적용
  • @EntityListeners(auditingEntityListener.class) 엔티티에 적용

@EnableJpaAuditing
@EntityListeners(auditingEntityListener.class)

2. 기존 엔티티 상속

3. 테스트


스프링 데이터 JPA / 등록자, 수정자

 

1. BaseEntity 추가

2. 빈 추가 ( 실무에서는 Session 값에서 찾아서 넣음 )

3. 테스트

 

참고

@EntityListeners(AuditingEntityListener.class) 를 생략하고 스프링 데이터 JPA 가 제공하는 이벤트를 엔티티 전체에 적용하려면 orm.xml에 다음과 같이 등록하면 된다.

 

<?xml version=“1.0” encoding="UTF-8”?>
<entity-mappings xmlns=“http://xmlns.jcp.org/xml/ns/persistence/orm”
 xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
 xsi:schemaLocation=“http://xmlns.jcp.org/xml/ns/persistence/
orm http://xmlns.jcp.org/xml/ns/persistence/orm_2_2.xsd”
 version=“2.2">
 <persistence-unit-metadata>
 <persistence-unit-defaults>
 <entity-listeners>
 <entity-listener
class="org.springframework.data.jpa.domain.support.AuditingEntityListener”/>
 </entity-listeners>
 </persistence-unit-defaults>
 </persistence-unit-metadata>

</entity-mappings>

 

 

+ Recent posts