2022/10/29 2

2022/10/29 TIL

JPA 프로그래밍 460페이지 까지 읽었다. Criteria와 queryDsl, nativeSql을 사용하는 방법에 대해서 배웠다. queryDsl이 Criteria보다 쓰기 간편하다고 느껴졌다. 그리고 벌크 수정을 하는 경우 영속성 컨텍스트를 통해서 업데이트하는 것이 아니라 바로 sql을 실행하는 것이므로 이때 영속성이 깨지는 문제를 해결하는 팁도 몇가지 배웠다. 이 방법은 세가지가 기억에 남았는데 첫 번째는 가장 먼저 벌크연산을 하고 이 후 영속성 컨텍스트를 사용하는 것이다. 두 번째는 벌크 연산을 한 이후 엔티티 매니저를 통해서 엔티티를 리프레시(em.refresh()) 해주는 것이다. 이러면 데이터베이스에서 정보를 다시 조회해온다. 세 번째는 벌크 연산 이후 영속성 컨텍스트를 초기화하는 것이다. ..

TIL 2022.10.29

2022/10/28 TIL

JPA 프로그래밍 409 페이지 까지 읽었다. JPQL과 JPQL의 조인방법들, 서브쿼리 방법, 경로표현식, 내부식, 그리고 Criteria 사용법을 알게 되었다. 패치조인이 무엇인지 이제야 알 수 있게 되었다. TypeOrm에서는 Relation을 통해서 풀거나 쿼리빌더로 해결하던 문제들을 이렇게 푸는구나 라는 생각을 하게 되었다. 그리고 JPQL이 객체에 대한 쿼리를 하는건 맞지만 query를 통해서 문제를 해결하는건 동일하지 않나? 이런 생각이 들었다. ORM을 사용해서 많은 문제를 쉽게 풀 수 있게 되었지만, 효율적인 프로그래밍을 위해서 쿼리를 만지는건 못 피하는건가 싶은 생각이 들었다. 그리고 queryDSL을 쓰게 되면 여타 언어들에서 사용하는 쿼리빌더나 엑티브레코드 암흑의 핵심 110페이지 ..

TIL 2022.10.29