DTO2 [JPA] Entity가 아닌 DTO로 DB에서 data 가져오기 n:1 관계에 있는 entity의 요소 DTO로 가져오기 JPQL 일반 join을 통해 DTO 객체를 생성해주면서 가져온다 order Repository public List findAllByDto(){ List em.createQuery("select new app.repository.order.dto.OrderDto(o.id, o.order_date, o.status, u.name, u.email)" + " from Order o" + " join o.user u", OrderDto.class).getResultList(); } 처음에 왜 fetch join을 쓰지 않고도 DTO로 가져올 때는 지연로딩 없이 가져올 수 있을까? 에 대해 생각했었는데 JPQL 안에 new 생성자를 통해 하나씩 값을 찍어.. 2022. 3. 10. [Spring Boot] Rest Controller DTO 의 필요성 Entity를 Client에 노출하지 말자 API 스펙과 엔티티가 깊이 연관 엔티티를 아래와 같이 직접 노출할 경우, 추후 entity를 수정시 API 스펙 자체가 바뀌어버리는 상황이 온다 클라이언트 쪽과 공유하는 부분이라 큰 혼란이 초래됨 @GetMapping("/api/users") public List userList(){ return userService.findUsers(); // User entity 리스트가 반환됨 } 반환값에 특정 필드 추가 불가 클라이언트에서 특정 계산된 값이 필요하다고 할 때, 예를 들어 user의 총 인원 수 JSON의 기본틀이 깨지게 된다 { "count" : 100, "users" : [ { "id" : 1 "name" : "hj" "email" : "email@g.. 2022. 2. 15. 이전 1 다음