Spring/JPA 2

JPA > 문제 해결

Caused by: org.hibernate.query.SemanticException: Fetch join has a 'with' clause (use a filter instead)Fetch join 시 with/on 절을 사용했더니 발생-> Where 절에서 필터링 해야함 페치 조인은 객체 그래프를 함께 로딩하기 위해 사용하는 건데, on 조건을 사용하면 연관 엔티티의 일부만 조인되므로, 영속성 컨텍스트에 불완전한 객체가 들어갈 수 있어 위험 이게 무슨말이냐면, Post 엔터티가 Comment 컬렉션 엔터티를 가지고 있을 때, JPQL에서 Comment의 deleted = false로 조회하였다면, 나중에 post.getComments()를 호출해도 deleted = true인 것은 조회되지 않음...

Spring/JPA 2025.05.26

Spring Data JPA > Query Methods > 메서드명 접두사

레퍼런스에 명확하게 기재하고 있지 않아서 직접 찾아보았다. find 말고도 사용 가능한 다른 접두사는? org.springframework.data.repository.query.parser.PartTree 클래스의 코드 패키지 위치를 통해 유추할 수 있듯 JPA에 국한되지 않고 Spring Data를 사용하는 모듈 하위 프로젝트에 적용될 것으로 기대된다. 어떤 것을 사용하는 게 좋을까? get 자바 빈즈의 Getter와 동일하므로 사용하지 않는다. stream 직관적이지 않음 read 보통 DB에서 검색하거나 조회한다는 건 저수준인데, 읽는다는 의미는 고수준이므로 뭔가 맞지 않는다. query RDB에서 사용하는 SQL이 Query이다보니 저수준의 의미적으론 가장 맞는다. 사용하기 나쁘지 않다. fin..

Spring/JPA 2023.12.04