QueryDsl이란? JPQL의 빌더(Criteria)클래스 QueryDsl 사용전 설정 dependency 추가 dependencies { compile("com.querydsl:querydsl-core:4.2.1") compile("com.querydsl:querydsl-apt:4.2.1") compile("com.querydsl:querydsl-jpa:4.2.1")
config xx.properties with Spring boot 1. @PropertySource 와 @Value를 이용한 방법 @Configuration @PropertySource("classpath:sandbox_db.properties") public class SandBoxDBConfig { @Value("${datasource.slave.driver-class-name}") private String driverClassName;
Spring Data JPA에서 트랜잭션 롤백 보통 spring data를 이용하면 영속성 컨텍스트의 생명주기는 트랜잭션의 유지시간과 동일함. exception이 발생하여 롤백 시 트랜잭션이 닫히면서 자연스럽게 영속성 컨텍스트도 닫힌다. 문제 발생할 여지 없음 OSIV처럼 영속성 컨텍스트의 생명주기가 트랜잭션보다 길 때 발생 할 수 있는 문제점. 데이터베이스에는 데이터가 반영되지 않았지만 영속성 컨텍스트에는 데이터가 잔류 되어있다. spring frame work에서는 다음과 같은 방법으로 문제를 해결한다. 트랜잭션 롤백 시 entityManager.clear()를 호출하여 영속성 컨텍스트를 초기화한다. 관련 코드
Junit 4 & Spring Test을 이용한 TDD 환경 세팅 SpringTestSupport 클래스에 설정 후 이 클래스를 상속받아 테스트를 개발함. @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = { RootContextConfig.class }, loader = AnnotationConfigWebContextLoader.class) @WebAppConfiguration public class SpringTestSupport {
Junit 5 & Spring Test을 이용한 TDD 환경 세팅 기본 세팅 @ExtendWith(SpringExtension.class) @SpringBootTest(classes = KkApplication.class) @ActiveProfiles("test") public abstract class SpringTestSupport { }