JPA 40

Select 문

기본 Select문 "user" Entity에 매핑된 테이블의 모든 컬럼값을 조회하므로, 사용을 추천하지 않는다. jpaQueryFactory .selectFrom(user) .fetch(); 원하는 컬럼만 조회 com.test.react.Model.User.class 클래스에 데이터를 매핑하여 리턴한다. ".as()" 함수로 반환 클래스 매핑명을 설정한다. jpaQueryFactory .select(Projections.fields( com.test.react.Model.User.class, user.id.as("userId"), user.name.as("name") )).from(user) .fetch(); JOIN 사용 jpaQueryFactory .select(Projections.fields( ..

JPA/queryDsl 2020.06.09

fetch join

최적화가 필요하면 사용 SQL 조인 종류가 아님 연관된 엔티티나 컬렉션을 SQL 한번에 함께 조회하는 기능 JPQL 에서 최적화가 필요한 곳에서 사용함 join fetch 명령어 사용 지연 로딩으로 설정되어있어도 fetch join이 우선임 쿼리는 inner join으로 생성되나, entity 객체에 from 절의 모든 객체가 자동으로 담기게 된다. inner join은 from 절의 모든 객체가 자동 세팅이 안된다. String query = "select m from Member m join fetch Team t on t.id = m.team.id"; List resultList = em.createQuery(query, Member.class).getResultList(); // 정상 실행되며 M..

JPA/JPQL 2020.06.09

벌크 연산

조건에 해당하는 모든 데이터를 일괄 수정시 사용 int resultCount = em.createQuery("update Member m set m.age = 20").executeUpdate(); insert into select 사용 가능. 벌크 연산은 영속성 컨텍스트를 무시하고 DB에 직접 쿼리 수행 ** 벌크 연산을 먼저 수행, 벌크 연산 수행 후 영속성 컨텍스트 초기화 em.clear(); 반드시 수행할것(DB 수정 이후 영속성 컨텍스트를 초기화하지 않으면, 작업한 내역이 보이지 않음.)

JPA/JPQL 2020.06.09