Spring16 [JPA] Hibernate Batch Size 설정 Batch Size? 1:N 관계 ( 여기서는 Order : OrderItem 이라고 가정 )에서의 지연 로딩 시에 SQL 문이 각각의 N개의 객체에 대해서 select orderItem0_.order_item_id as order_item_id5_5_1_, orderItem0_.order_id as order_id_it1_5_1_, orderItem0_.item_id as item_id_it1_5_0, orderItem0_.order_price as order_price_id5_5_0, orderItem0_.count as count_id5_3_0 from orderItem orderItem0_ where orderitem0_.order_id = ? where 절에 = 이 들어가서 N개의 SQL이 나가.. 2022. 3. 9. [Spring Boot] 개발 단계에서 테스트를 위한 DB data 만들기 개발 중에 테스트를 진행할 때, 아예 db에 테스트 data를 넣고 싶다면 was가 띄워지기 전에 DB에 data들을 넣는 방법이 있다 그전에 Spring Component와 Bean에 대해 간단히 정리하고 가고자 한다 Spring Bean Spring 을 구성하는 핵심요소들 Spring IOC(Inversion Of Control) 컨테이너에 의해 관리되는 POJO (Plain Old Java Object) Spring Container에서 생성하는 객체 Spring Component bean으로 등록될 로직을 가진 class Spring이 IOC 컨테이너를 만들고 그 안에 Bean 객체들을 생성해서 등록시킬 때(Life Cycle CallBack) Component들을 모두 스캔하여 그러한 class.. 2022. 2. 18. [JPA] DB의 data가 update 되는 플로우 정리 유져가 회원가입을 완료한 후에 마이페이지 같은 곳에서 자신의 정보를 바꾼다고 가정 JPA는 이러한 update 에서 어떠한 과정을 거치는가에 대해 정리해보려 한다 예시 코드 @Service @Transactional(readOnly = true) @RequiredArgsConstructor // final에 해당되는 필드에 대한 constructor 자동 생성 어노테이션 public class UserService{ private final UserRepository userRepository; @Autowired // constructor injection public UserService(UserRepository userRepository){ this.userRepository = userRepos.. 2022. 2. 18. [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 2 3 4 다음