JPA의 경우 예외가 발생하면 JPA 예외가 발생하게 된다.EntityManager은 순수한 JPA 기술이며, 스프링과 관계가 없다 따라서 엔티티 매니저는 예외가 발생하면 JPA 관련 예외를 발생시킨다.JPA는 PersistenceException과 그 하위 예외를 발생시킨다.추가로 IllegalStateException, IllegalArgumentException을 발생시킬 수 있다.그렇다면 JPA 예외를 스프링 예외 추상화로 변환할 수 있을까? @Repository의 기능@Repository가 붙은 클래스는 컴포넌트 스캔의 대상이 된다.@Repository가 붙은 클래스는 예외 변환 AOP의 적용 대상이 된다.스프링과 JPA를 함께 사용하는 경우 스프링은 JPA 예외 변환기(Persistence..
Spring/JDBC
라이브러리 추가immplementation 'org.springframwork.boot:spring-boot-starter-data-jpa'라이브러리를 추가하게되면 라이브러리에 hibernate(구현체), persistence(jpa) 등이 들어오게 된다. 로그 설정logging.level.org.hibernate.SQL=DEBUGlogging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACElogging.level.org.hibernate.SQL=DEBUG하이버네이트가 생성하고 실행하는 SQL을 확인할 수 있다.logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACESQL에 바인딩되는 파라..
스프링과 JPA는 자바 엔터프라이즈(기업) 시장의 주력 기술이다. 스프링이 DI 컨테이너를 포함한 애플리케이션 전반의 다양한 기능을 제공한다면, JPA는 ORM 데이터 접근 기술을 제공한다.JPA를 더욱 편리하게 사용하기 위해 스프링 데이터 JPA와 Querydsl이라는 기술을 함께 사용한다. 중요한 것은 JPA이다. 스프링 데이터 JPA, Querydsl은 JPA를 편리하게 사용하도록 도와주는 도구라 생각하면 된다.JPA와 스프링 데이터 JPA, 그리고 Querydsl로 이어지는 전체 그림을 보도록 하자. ORM 개념 - SQL 중심적인 개발의 문제점애플리케이션: 객체 지향언어, 데이터베이스: 객체를 관계형 DB에 관리하는 추세관계형 DB를 사용하기 위해서는 SQL을 사용해야한다. 하지만 무한 반복..
메모리는 쓰레드를 종료시키면 가지고 있던 데이터가 같이 없어지게 되지만 DB의 경우 그렇지 않습니다. 테스트에 사용된 데이터는 DB에 저장하지않고 테스트 실행 직전으로 돌려야합니다.이런 상황에서 테스트 하는 방법을 알아보겠습니다.@SpringBootTest 애노테이션이 붙은 클래스는 @SpringBootApplication 을 가진 클래스의 설정 정보를 사용합니다. 테스트 - 데이터베이스 분리H2 DB 기준 새로운 DB 생성 방법기존 실행 중이던 DB를 종료 후 다시 실행ip부분을 -> localhost 로 수정 후JDBC URL에 jdbc:h2:~/[DB명] 을 입력하면~/[DB명].mv.db 파일 생성 확인이후는 tcp를 이용해 원격 접속 ( jdbc:h2:tcp://localhost/~/[DB명..