JPA

· JPA
스프링이나 J2EE 컨테이너 환경에서 JPA를 사용하면 영속성과 트랜잭션을 대신 관리해주므로 편리하게 애플리케이션을 개발할 수 있다. 하지만, 컨테이너 환경에서 동작하는 JPA의 내부 동작 방식을 이해하지 못하면 문제가 발생했을 때 해결하기 쉽지 않다. 트랜잭션 범위의 영속성 컨텍스트 스프링이나 J2EE 컨테이너 환경에서는 컨테이너가 제공하는 전략을 따라야 한다. 스프링 컨테이너의 기본 전략 스프링 컨테이너는 트랜잭션 범위의 영속성 컨텍스트 전략을 사용한다. 말 그대로 트랜잭션과 영속성 컨텍스트의 생명주기가 같다라는 의미이다. 트랜잭션이 시작되면 영속성 컨텍스트가 생성되고 트랜잭션이 종료되면 영속성 컨텍스트가 종료된다. 같은 트랜잭션 안에서는 항상 같은 영속성 컨텍스트에 접근한다. 스프링 프레임워크를 사..
· JPA
대부분의 데이터 접근 계층 Data Access Layer 은 CRUD 코드를 반복해서 개발해야 한다. JPA를 사용해서 데이터 접근 계층을 개발할 때도 이 같은 문제가 발생한다. 이런 문제를 해결하려면 제네릭과 상속을 적절히 사용해 공통 부분을 처리하는 부모 클래스를 만들면 된다. 스프링 데이터 JPA 소개 스프링 데이터 JPA는 스프링 프레임워크에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트이다. 이 프로젝트는 데이터 접근 계층을 개발할 때 지루하게 반복되는 CRUD 문제를 세련된 방법으로 해결한다. 우선 CRUD를 처리하기 위한 공통 인터페이스를 제공한다. 그리고 리포지토리를 개발할 때, 인터페이스만 작성하면 실행시점에 스프링 데이터 JPA가 구현 객체를 동적으로 생성해서 주입해준다. 따..
· JPA
496p까지 11장_웹 애플리케이션 제작 사용할 기술 뷰 → JSP, JSTL 웹 계층 → Spring MVC 데이터 기반 저장 → JPA, 하이버네이트 기반 프레임워크 → 스프링 빌드 → 메이븐 프로젝트 환경설정 진행 순서 프로젝트 구조 분석 메이븐과 라이브러리 설정 스프링 프레임워크 설정 메이븐 build IntelliJ - Maven Build 하기 처음에 mvn tomcat7:run을 해도 계속 오류가 떴다. 여러가지 찾아봤었는데 자바 버전 문제나 플러그인 문제인가 싶었는데 결국은 프로젝트가 잘못설정되어 있어서 그런거였다. mvn goal 실행할 때 프로젝트가 잘 설정되어있는지 꼭 확인하자.. pom.xml : POM 모델 버전 : 프로젝트 그룹명 : 프로젝트를 식별하는 아이디 : 프로젝트 버전 ..
· JPA
10장_객체지향 쿼리 언어 이 장 중심 내용은 아래와 같다. 객체지향 쿼리 소개 JPQL Criteria QueryDSL Native SQL 객체지향 쿼리 심화 JPQL은 가장 중요한 객체지향 쿼리 언어이다. Criteria, QueryDSL 등은 JPQL을 좀 더 쉽게 사용할 수 있게 해주는 것에 불과하다. 따라서, 개발자는 JPQL에 능숙해야 한다. 객체지향 쿼리 소개 EntityManager.find() 메소드를 이용하면 하나의 엔티티를 조회할 수 있고, 여기서 연관된 정보를 조회하려면 객체 그래프 탐색을 하면된다. 하지만, 이 기능만으로는 부족하다. 그렇다고 해서 처음 조회할 때 모든 엔티티를 조회하는 것도 현실적이지 않다. 결국, 데이터는 데이터베이스에 있으므로 SQL을 사용해서 필요한 정보를 ..
greatwhite
'JPA' 태그의 글 목록