일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 깃허브 로그인
- 백준 4358 자바
- 모두의 네트워크
- 자바
- 백준 4358번
- 데이터베이스
- 깃허브 토큰 인증
- 백준 5525번
- 머신러닝
- 모두를 위한 딥러닝
- 모두의네트워크
- React Native
- 리액트 네이티브 프로젝트 생성
- 리액트 네이티브
- 깃 터미널 연동
- 모두를위한딥러닝
- 정리
- 스터디
- 딥러닝
- 지네릭스
- 네트워크
- 리액트 네이티브 시작하기
- 데베
- 팀플회고
- 백준
- HTTP
- 문자열
- SQL
- 백준 4949번
- 깃 연동
- Today
- Total
목록dev/Spring Boot (9)
솜이의 데브로그
GET 프록시 객체 반환 실제 사용할 때 DB 접근 Lazy Loading 비어있는 객체를 반환할 경우 EntityNotFoundException 발생 FIND 프록시가 아니라 실제로 DB에서 값을 찾아옴 Optional 로 한번 감싸서 값을 가져옴. 해당 id의 값이 없다면 Null 반환 해당하는 Entity가 없을 경우 Optional.empty() 반환 정리 내부의 값을 필요로 하지는 않고 다른 객체에게 할당하는 목적으로만 조회하는 경우, getReferenceById 를 사용하면 성능상 이점이 있을 수 있다. getReferenceById 는 EntityManager의 getReference 메서드를 호출하여 참조값만 가져온 후, 조회된 entity의 내부 값이 필요해지는 시점에 lazy load..
orphanRemoval = true 설정하기 리스트를 지우고 새로 생성 그다음에 entitymanager 가 변경감지해서 persist @OneToMany(fetch = FetchType.LAZY, mappedBy = "picture", cascade = CascadeType.ALL, orphanRemoval = true) private List tagGroupList = Lists.newArrayList(); public void update(BoardCommand.RegisterBoardRequest request) { this.filePath = request.getFilePath(); var registerTagGroupRequestList = request.getRegisterTagGroupR..
Reference : Inflearn 실전 스프링 부트와 JPA 활용1 (김영한님 강의) 상품 등록 상품 등록 컨트롤러 /controller/ItemController package jpabook.jpashop.controller; import jpabook.jpashop.domain.item.Book; import jpabook.jpashop.service.ItemService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping..
Reference : Inflearn 실전 스프링부트와 JPA 활용1 (김영한님 강의) 홈 컨트롤러 등록 package jpabook.jpashop.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home(){ log.info("home controller"); return "home"; } } 로그를 찍을 때 @Slf4j ..
Reference : Inflearn 실전 스프링부트와 JPA 활용 (김영한님 강의) 주문 기능 테스트 상품 주문 성공 상품 주문 시 재고수량을 초과하면 안된다 주문 취소가 성공해야함 위의 조건들을 만족하는지 테스트해보자. OrderServiceTest.java package jpabook.jpashop.service; import jpabook.jpashop.domain.Address; import jpabook.jpashop.domain.Member; import jpabook.jpashop.domain.Order; import jpabook.jpashop.domain.OrderStatus; import jpabook.jpashop.domain.item.Book; import jpabook.jpash..
Reference : Inflearn 실전 스프링부트와 JPA 활용 (김영한님 강의) 상품 주문, 주문 내역 조회, 주문 취소 기능을 포함한 주문 도메인을 개발해보자. 주문 엔티티, 주문 상품 엔티티 개발 domain/Order.java 생성 메서드 createOrder() : 주문 엔티티 생성할 때 사용. 생성 메서드에서 다 set해서 완결시켜버림. 주문 취소 cancel() : 이미 배송 완료한 상품이면 주문 취소하지 못하도록 예외 비즈니스 로직에 대한 check logic이 엔티티 안에 있다. 상태 바꾸고 루프 돌면서 아이템의 재고 수정. 전체 주문 가격 조회 개별의 주문 가격과 수량을 곱해서 나온 결과를 더해서 반환. //--생성 메서드==// public static Order createOrd..
Reference : Inflearn 실전 스프링부트와 JPA 활용 1 (김영한님 강의) 상품 도메인 개발 상품 엔티티 개발 상품 등록, 상품 목록 조회, 상품 수정 기능을 포함한 상품 엔티티를 개발해보자. //==비즈니스 로직==// /** * stock 증가 * */ public void addStack(int quantity){ this.sotckQuantity += quantity; } /** * stock 감소 * */ public void removeStock(int quantity){ int restStock = this.sotckQuantity - quantity; if(restStock
Reference : Inflearn- 실전 스프링부트와 JPA 활용1 (김영한님 강의) 다음 기능들을 포함한 애플리케이션을 개발해보자. 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 회원 리포지토리 MemberRepository.java @Repository : 스프링빈으로 등록하고, JPA 예외를 스프링 기반 예외로 변환 @PersistenceContext : 엔티티 매니저 주입 @PersistenceUnit : 엔티티 매니저 팩토리 주입 package jpabook.jpashop.repository; import jpabook.jpashop.domain.Member; import org.springframework.ster..