본문 바로가기

Spring72

spring data jpa 에서 데이터 생성일, 수정일 자동 생성 source 는 Github 에 있습니다. spring data jpa 에서 데이터 생성일, 수정일 자동 생성 spring data jpa 에서 데이터 생성일, 수정일 자동 생성에 대해서 정리했습니다. 데이터를 생성하거나 변경할 떄, 매번 컬럼을 생성하고 세팅할 필요 없이 자동으로 하는 방법입니다. 사용방법 @EnableJpaAuditing Application 에 @EnableJpaAuditing 를 붙여줘야 합니다. Jpa Auditing 를 활성화시키는 annotation 입니다. spring data jpa 에서 audit 은 시간을 자동으로 넣어주는 기능입니다. @EnableJpaAuditing @SpringBootApplication public class JpaExampleApplicatio.. 2021. 12. 29.
spring-boot, jpa, h2 환경에서 select for update (lock) 사용 방법 정리 source 는 Github 에 있습니다. spring boot h2 환경에서 jpa 명시적 락 사용하는 예제 spring boot h2 환경에서 select for update 를 사용하는 방법에 대해 정리했습니다. 결론부터 얘기하면 repository interface 에 메소드에 @Lock(LockModeType.PESSIMISTIC_WRITE) 선언하면 select for update 가 설정 됩니다. 예제에 대해 간략하게 설명하면 deposit(입금), withdraw(인출) 기능이 있으며, 여러 요청이 들어왔을 때, 동시성이 보장되는지 확인합니다. package com.example.jpa.api; import com.example.jpa.dto.BankAccountRequest; import.. 2021. 12. 21.
spring boot @Sql, @SqlGroup 정리 source 는 Github 에 있습니다. @Sql annotation 이란? SQL 스크립트 혹은 쿼리를 실행시킵니다. 주로 테스트 클래스, 메소드에 사용됩니다. 쉽게 말해 테스트 환경에서 데이터를 CRUD 할 수 있는 방법입니다. @SqlGroup 이란? @Sql 을 여러개 그룹화 해서 사용할 수 있습니다. 자세한건 아래 예제 소스를 참고하시면 됩니다. source 아래 예제는 JPA DDL-AUTO: update 로 켜져있기에 따로 DDL 문은 작성하지 않았습니다. @Sql( scripts = {"/sql/MEMBER_INSERT_DML.sql"}, config = @SqlConfig( dataSource = "dataSource", // 데이터 소스를 설정합니다. transactionManager.. 2021. 12. 15.
@DataJpaTest 정리 source 는 Github 에 있습니다. @DataJpaTest 란? Jpa Test 에 포커싱이 맞춰진 테스트 annotation 입니다. 주로 Jpa test 를 할 때, 사용하며 Junit4 를 사용하면 @RunWith(SpringRunner.class) 와 같이 사용해야 합니다. 같이 사용해야하는 이유는 Spring 공식 문서에 같이 써야한다고 나와있습니다. DataJpaTest 는 인메모리 데이터베이스 (기본 H2) 로 설정하며, @Entity 가 붙은 클래스, Spring Data Jpa Repository 를 스캔합니다. Transactional 하며, 테스트가 종료 시 Rollback 기능도 있습니다. @RunWith(SpringRunner.class) 테스트 클래스에 RunWith 를 .. 2021. 12. 15.