
. 파일: 성능, 보안, 편의성에 한계 존재 -> 이런 한계를 극복하기 위한 전문화 소프트웨어 = 데이터베이스 -> 데이터를 안전하고 편하고 빠르게 보관 가능.

1장. JPA 소개 JPA를 사용하면, CRUD SQL을 작성할 필요가 없고, 조회된 결과와 객체를 매핑하는 일도 자동으로 JPA에서 처리해준다는 장점이 있음. 또한 애플리케이션을 SQL이 아닌 객체 중심으로 개발할 수 있어 생산성과 유지보수가 좋아지고, 테스트 작성이

SQL 입력 후 결과1.라이브러리와 프로젝트 구조일단 인텔리제이 IDE를 사용하고 있어서 이클립스를 따로 깔지 않고 인텔리제이에서 실습을 진행하였다.프로젝트 구조는 아래와 같았는데, JpaMain.java가 실행 클래스이고, Member.java가 엔티티라고 한다. p

표를 만드는 부분의 SQL을 직접 짜는 경우는 적다고한다. 데이터베이스의 장점은 컬럼에 데이터 타입을 강제(지정) 할 수 있음만드려는 표: id, title, description, created, author, profileid INT(11): 뒤의 11의 의미는 1
JPA가 제공하는 기능1\. 엔티티와 테이블을 매핑하는 설계 부분2\. 매핑한 엔티티를 실제 사용하는 부분엔티티 매니저(Entity Manager): 엔티티를 저장/수정/삭제/조회하는 등 엔티티와 관련된 모든 일을 처리.데이터베이스를 하나만 사용하는 경우 애플리케이션은

두 개의 테이블에 분산해서 저장하고 읽어와 출력에는 이를 합쳐서 보여줄 수 있음. 중복을 제거할 수 있다는 것이 장점.RENAME TABLE: 테이블 이름 수정 가능author라는 테이블을 기존의 topic 테이블에서 따로 분리해 만들어 중복하여 저장하는 author의
JPA에서는 매핑 어노테이션을 사용해 엔티티와 테이블을 매핑한다. 다양한 매핑 어노테이션들은 아래와 같이 구분해 볼 수 있다. 객체와 테이블 매핑: @Entity, @Table기본 키 매핑: @Id필드와 컬럼 매핑: @Column연관관계 매핑: @ManyToOne, @

엔티티들은 대부분 다른 엔티티와 연관관계가 있다. 이때 자바의 객체는 참조(주소)를 사용해 관계를 맺고, 테이블은 외래 키를 사용해 관계를 맺는다. 이 둘은 앞에서 나왔듯이 특징이 꽤 다르기에 객체의 참조와 테이블의 외래 키를 매핑하는 것이 ORM(객체 관계 매핑)에서

6장. 다양한 연관관계 매핑 엔티티의 연관관계 매핑 시에는 아래 3가지를 고려하게된다. 다중성 단방향, 양방향 연관관계의 주인 두 엔티티가 일대일 관계인지 일대단 관계인지 다중성을 고려하여야한다. 단방향일 때는 괜찮지만, 양방향일 때는 연관관계의 주인을 정해야한다.

상속 관계 매핑: 객체의 상속 관계를 데이터베이스에서 매핑하는 방법@MappedSuperclass: 등록일, 수정일 같이 여러 엔티티에서 공통으로 사용하는 매핑 정보만 상속받고 싶을 때 사용.복합키와 식별 관계 매핑: 데이터베이스의 식별자가 하나 이상일 때 매핑하는 방

프록시와 지연로딩, 즉시로딩: 객체가 데이터베이스에 저장되어 연관된 객체를 마음껏 탐색하기 어려운 상황에서 JPA 구현체들은 이 문제를 해결하기 위해 프록시를 사용함. 프록시를 사용하면 연관된 객체를 처음부터 데이터베이스에서 조회하는 것이 아니라 실제 사용하는 시점에
09장. 값 타입 JPA의 데이터 타입 엔티티 타입: @Entity로 정의하는 객체 식별자를 통해 지속해서 추적 가능 값 타입: int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입 또는 객체 식별자가 없고 문
10장. 객체지향 쿼리 언어 JPA는 복잡한 검색 조건을 사용해 엔티티 객체를 조회할 수 있는 다양한 쿼리 기술을 지원한다. JPQL은 가장 중요한 객체지향 쿼리 언어이다. Criteria나 QueryDSL은 결국 JPQL을 편리하게 사용하도록 도와주는 기술이다.
10장. 객체지향 쿼리 언어 10.4 QueryDSL JPA Criteria는 문자가 아닌 코드로 JPQL을 작성하기에 문법 오류를 컴파일 단계에서 잡을 수 있고, IDE 자동완성 기능의 도움을 받을 수 있다는 장점이 존재하지만, 단점은 너무 복잡하고 어렵다는 점이다. 쿼리를 문자가 아닌 코드로 작성해도 쉽고, 간결하며 그 모양도 쿼리와 비슷하게 개발할...

예제에서 사용하는 기술뷰: JSP, JSTL웹 계층: 스프링 MVC데이터 저장 계층: JPA, 하이버네이트기반 프레임워크: 스프링 프레임워크빌드: 메이븐프로젝트 환경설정 진행순서프로젝트 구조 분석메이븐(Maven)과 라이브러리 설정스프링 프레임워크 설정프로젝트 폴더 구

스프링 프레임워크에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트.CRUD를 처리하기 위한 공통 인터페이스 제공레포지토리 개발 시 → 인터페이스만 작성하면 실행 시점에서 구현 객체를 동적으로 생성해 주입. ⇒ 데이터 접근 계층 개발 시, 구현 클래스 없이 인
J2SE 환경에서 JPA 사용 시 개발자가 직접 엔티티 매니저를 생성하고 트랜잭션도 관리해야함.스플이 또는 J2SE 컨테이너 환경 → JPA 사용 시, 컨테이너가 제공하는 전략 따라야함.트랜잭션 범위의 영속성 컨텍스트 전략:트랜잭션의 범위와 영속성 컨텍스트의 생존 범위