프로그래밍 노트/JPA

1. 스프링 데이터 JPA 소개 스프링 데이터 JPA 스프링 프레임워크에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트 데이터 접근 계층(DAO)을 개발할 때 구현 클래스 없이 인터페이스만 작성해도 개발을 완료(지루하게 반복되는 CRUD 문제를 세련된 방법으로 해결, 인터페이스만 작성하면 실행시점에 스프링 데이터 JPA가 구현 객체를 동적으로 생성해서 주입) public interface MemberRepository extends JpaRepository{ Member findByUsername(String username); } public interface ItemRepository extends JpaRepository{ } 2. 공통 인터페이스 기능 스프링 데이터 JPA는 간단한 CRU..
쿼리를 문자가 아닌 코드로 작성할 수 있으며, 쉽고 간결하며 그 모양도 쿼리와 비슷하게 개발할 수 있음 www.querydsl.com/static/querydsl/3.6.3/reference/ko-KR/html_single/ 1. QueryDSL 설정 필요 라이브러리 com.mysema.querydsl querydsl-jpa 3.6.3 com.mysema.querydsl querydsl-apt 3.6.3 querydsl-jpa : QueryDSL JPA 라이브러리 querydsl-apt : 쿼리 타입(Q)을 생성할 때 필요한 라이브러리 환경설정 com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.mysema.q..
특징 JPQL은 객체지향 쿼리 언어다. 따라서 테이블을 대상으로 쿼리하는 것이 아니라 엔티티 객체를 대상으로 쿼리한다. JPQL은 SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. JPQL은 결국 SQL로 변환된다. 기본 문법과 쿼리 API JPQL도 SQL과 비슷하게 SELECT, UPDATE, DELETE 문을 사용 가능 (저장시, EntityManager.persist() 메소드를 사용하므로 INSERT는 존재하지 않음) # JPQL 문법 # select문 select_ from_ [where_ ] [group by_ ] [having_ ] [orderby_ ] # update문 update_ [where_ ] #delete delete_ [where_ ] SELECT 문 SELECT..
TypedQuery query = em.createQuery("select m from Member m", Memeber.class); List memberList = query.getResultList(); JPA는 엔티티 객체를 중심으로 개발을 하므로 SQL을 사용하지 않는다. 하지만 SQL을 사용해야할 때가 필요한데, 바로 검색쿼리를 사용할 때 이다. JPA는 엔티티 객체를 중심으로 개발하므로 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색해야 한다. ⇒ 필요한 데이터만 데이터베이스에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요하다. JPA는 JPQL(Java Persistence Query Language)를 제공한다. JPA는 SQL을 추상화한 JPQL이라는 객체지향 쿼리 언어..
JPA, Hibernate, Spring Data JPA JPA공부를 시작함에 있어서 가장헷갈렸던 부분이 JPA와 Hibernate와의 관계였다. 동영상강의에서는 처음에 EntityManager를 활용하여 Data를 삭제 저장 업데이트를 하지만, 실제 실무에서는 EntityManager를 사용하지 않고 Repository 인터페이스 만을 이용해서 JPA를 사용한다. 간단하게 이 세가지에 대해 알아보면 JPA 기술 명세 JPA(Java Persistence API)는 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. javax.persistance 단순히 인터페이스이며 구현체는 없다. EntityManager도 인터페이스이다. Hibernate JPA의 구현체 Hiberna..
깡냉쓰
'프로그래밍 노트/JPA' 카테고리의 글 목록 (2 Page)