목록JPA (6)
아님말고
Projection는 JPA로 조회시 원하는 컬럼을 가져오는 방식으로 Spring Data JPA 에서 사용하는 방식과 QueryDSL 에서 사용하는 방식으로 나눠서 볼 수 있습니다. Member.java @Data @Entity @Table(name = "member") public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; private String email; } Spring Data JPA 에서 사용하는 방식 크게 Interface 방식과 Class 방식이 있다. Interface 기반 Projections Closed Projections Memb..
Member.java @Data @Entity @Table(name = "member") public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; private String email; } MemberDTO.java @Getter public class MemberDTO { private String name; private String email; @QueryProjection public MemberDTO(String name, String email) { this.name = name; this.email = email; } } MemberReposit..
maven 의존성 주입 com.querydsl querydsl-apt ${querydsl.version} provided com.querydsl querydsl-jpa ${querydsl.version} plugin 추가 com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.querydsl.apt.jpa.JPAAnnotationProcessor queryDsl은 entity 객체기준으로 생성한 Q타입 (query type) 객체로 연산을 하는데 Q타입 객체를 build 하는 plugin 세팅이다. JPAAnnotationProcessor 가 target/generated-sources/java 경로에 Q타입 객체..
아래 오류가 발생시 체크해봐야 할 부분 Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:169) ~[hibernate-core-5.4.27.Final.jar:5.4.27.Final] at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:91) ~[hibernate-core-5.4.27.Final.j..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cYHb2K/btrLR7sHtlL/Il4JgxNCXZWMWn3xnsp1V1/img.png)
1. 접속 DB 1개인 경우 application.yml 에 datasource 정보만 기입하고 따로 config 파일 (class 또는 xml) 을 안 만들어도 spring boot 에서 자동구성해준다. spring: datasource-default: hikari: jdbc-url: jdbc:h2:~/mytest driver-class-name: org.h2.Driver username: sa password: 2. 접속 DB 2개인 경우 테스트를 위한 테이블 및 데이터 create table member( id int not null auto_increment, name varchar(255) not null, email varchar(255) null, primary key(id) ) insert..
JPA 에서 쿼리를 사용하는 방법은 4가지 입니다. NativeSQL JPQL Criteria 쿼리 QueryDSL NativeSQL SQL을 직접 사용하는 방법 (특정 DB 벤더에 의존적 쿼리, 런타임 시점에 오류 발견 가능하다는 단점) JPQL SQL을 직접 사용하지 않고 객체를 조회하는 객체지향 SQL Criteria 쿼리 JPQL을 편하게 작성해주는 API (코드가 한눈에 안들어온다는 단점) QueryDSL JPQL을 편하게 작성해주는 API (코드가 직관적이지만 Query 전용 class 가 생성된다는 단점) 객체지향 쿼리 소개(Criteria, QueryDSL, Native Query) :: 준영이의 웹 까페 (tistory.com)