본문 바로가기

프로젝트_ 커피주문 서비스

시간 등록을 위한 JPA Auditing 테스트

  • JPA Auditing
    • Spring Data JPA 에서 시간에 대해서 자동으로 값을 넣어주는 기능

 

  • BaseTimeEntity 생성
@MappedSuperclass // JPA Entity 클래스들이 상속받을 경우 필드도 컬럼으로 인식
@EntityListeners(AuditingEntityListener.class) //Auditing 기능 추가
@Getter //Getter 추가, 롬복
public class BaseTimeEntity {

    @CreatedDate //생성 시간
    private LocalDateTime createdDate;

    @LastModifiedDate //수정 시간
    private LocalDateTime modifiedDate;
}

 

 

  • TimeTestEntity 생성
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "Times")
public class TimeTestEntity extends BaseTimeEntity{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
}

 

 

  • TimeTestRepository
public interface TimeTestRepository extends JpaRepository<TimeTestEntity, Long> {
}

 

 

  • 메인 클래스에 어노테이션 추가
@EnableJpaAuditing //JPA Auditing 어노테이션 활성화
@SpringBootApplication
public class CoffeeShopApplication {

	public static void main(String[] args) {
		SpringApplication.run(CoffeeShopApplication.class, args);
	}

}

 

 

  • 테스트 코드 : TimeTestEntityTest
@SpringBootTest
class TimeTestEntityTest {

    @Autowired
    TimeTestRepository timeTestRepository;

    @Test
    @DisplayName("BaseTimeEntity_테스트")
    public void TimeTest() {
        LocalDateTime now = LocalDateTime.now(); //로컬 컴퓨터의 현재 날짜와 시간정보를 now 변수에 저장
        timeTestRepository.save(new TimeTestEntity());

        List<TimeTestEntity> times = timeTestRepository.findAll();

        TimeTestEntity time = times.get(0);

        System.out.println("Create Date = " + time.getCreatedDate());
        System.out.println("Modified Date = " + time.getModifiedDate());

        assertThat(time.getCreatedDate()).isAfter(now);
        assertThat(time.getModifiedDate()).isAfter(now);
    }

}

 

결과에 시간이 잘 나온다!

 

 

 

GitHub - Pearlmoon997/CoffeeShop: CoffeeShop

CoffeeShop. Contribute to Pearlmoon997/CoffeeShop development by creating an account on GitHub.

github.com

 

'프로젝트_ 커피주문 서비스' 카테고리의 다른 글

OrderProduct_ SELECT 테스트  (0) 2022.07.30
OrderDate 삽입  (0) 2022.06.20
Member_ CRUD (API Controller)  (0) 2022.06.15
Product_ Update, Delete (API Controller)  (0) 2022.06.15
Product_ Create, Read (API Controller)  (0) 2022.06.14