응애개발자
article thumbnail
객체지향 쿼리 언어(3) QueryDSL
Spring/JPA 2023. 7. 17. 04:40

4. QueryDSL Criteria는 너무 어렵고 복잡하다. 쿼리를 문자가 아닌 코드로 작성해도, 쉽고 간결하며 그 모양도 쿼리와 비슷하게 개발할 수 있는 프로젝트가 바로 QueryDSL이다. QueryDSL도 Criteria처럼 JPQL 빌더 역할을 하는데 JPA Criteria를 대체할 수 있다. QueryDSL은 오픈소스 프로젝트이고 지금은 JPA, JDO, JDBC, Lucene, Hibernate Search, 몽고 DB, 자바 컬렉션 등을 다양하게 지원한다. 참고로 QueryDSL은 데이터를 조회하는데 기능이 특화되어 있다. QueryDSL 설정 - 필요 라이브러리 querydsl-jpa : QueryDSL JPA 라이브러리 querydsl-apt: 쿼리 타입(Q)을 생성할 때 필요한 라이브..

article thumbnail
객체지향 쿼리 언어(2) Criteria
Spring/JPA 2023. 7. 17. 03:37

3. Criteria Criteria 쿼리는 JPQL을 자바 코드로 작성하도록 도와주는 빌더 클래스 API이다. 이것을 사용하면 문자가 아닌 코드로 JPQL을 작성하므로 문법 오류를 컴파일 단계에서 잡을 수 있고 문자 기반의 JPQL보다 동적 쿼리를 안전하게 생성할 수있다는 장점이 있다. 하지만 실제 Criteria를 사용해보면 복잡해서 직관적으로 이해가 힘들다는 단점이 있다. Critera는 결국 JPQL의 생성을 돕는 클래스 모음이다. Criteria 기초 Criteria API는 javax.persistence.criteria 패키지에 있다. Criteria 쿼리를 생성하려면 먼저 Criteria 빌더를 얻어야 한다. 이 빌더는 EntityManager나 EntityManagerFactory 에서 ..

article thumbnail
[Spring] Error(오류),Exception(예외) 총정리
Spring/Error 2023. 7. 16. 02:58

1. Spring 3버전 이상 https://start.spring.io/ SpringBoot 3.0 이상부터는 자바 JDK 17 이상부터 설정해야 오류가 발생하지 않는다. (8버전, 11버전은 오류 발생) 2. Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 이 에러가 발생하면 InteliJ 설정에서 체크박스를 언체크해줘야 한다. File > Settings > Build,Execution, Deployment > Debugger > Async Stack Traces 에서 오른쪽 위에 instrumenti..

article thumbnail
객체지향 쿼리 언어 (1) 객체지향 쿼리 소개, JPQL
Spring/JPA 2023. 7. 16. 02:41

1. 객체지향 쿼리 소개 EntityManager.find() 메서드를 사용하면 식별자로 엔티티 하나를 조회할 수 있다. 이렇게 조회한 엔티티에 객체 그래프 탐색을 사용하면 연관된 엔티티들을 찾을 수 있다. 이 둘은 가장 단순한 검색 방법이다. 식별자로 조회 : EntityManager.find() 객체 그래프 탐색 : ex) a.getB() 하지만 이 기능만으로 애플리케이션을 개발하기는 어렵다. ex) 나이가 30살 이상인 회원을 모두 검색하고 싶다. 그렇다고 모든 회원 엔티티를 메모리에 올려두고 검색하는 것은 현실성이 없다. 결국 데이터는 DB에 있으므로 SQL로 필요한 내용을 최대한 걸러서 조회해야 한다. 하지만 ORM을 사용하면 엔티티 객체를 대상으로 개발하므로 검색도 테이블이 아닌 엔티티 객체를..