JPQL을 모르면 실무 개발이 불가능! 여러 테이블에서 그 복잡한 정보들을 어떻게 쉽게 가져올 것이냐에 대한 고민 -> 필요에 따라 조인도 남발해야 하고.... => JPA는 JPQL로 해결. JPQL은 테이블이 아닌, 객체를 대상으로 하는 객체지향 쿼리라고 생각하면 된다,. public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); t..

강의명 : 인프런 [자바 ORM 표준 JPA 프로그래밍 - 기본편] 기본 세팅 Persistence.xml ( resources 하위 META-INF/persistence.xml) Pom.xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.7.14 com.example exjpa 0.0.1-SNAPSHOT exjpa exjpa 1.8 com.h2database h2 1.4.199 org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-test ..

https://school.programmers.co.kr/learn/courses/30/lessons/181939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다. 12 ⊕ 3 = 123 3 ⊕ 12 = 312 양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요. 단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다. 제한사항 입출력 예 입출력 예 설..
@DeleteMapping(value = "/cartItem/{cartItemId}") public @ResponseBody ResponseEntity deleteCartItem(@PathVariable("cartItemId") Long cartItemId, Principal principal){ if (!cartService.validateCartItem(cartItemId, principal.getName())) { return new ResponseEntity("수정권한이 없습니다.", HttpStatus.FORBIDDEN); } cartService.deleteCartItem(cartItemId); return new ResponseEntity(cartItemId, HttpStatus.OK); 그..

@PostMapping(value = "/cart/orders") public @ResponseBody ResponseEntity orderCartItem(@RequestBody CartOrderDto cartOrderDto, Principal principal){ System.out.println(cartOrderDto.getCartItemId()); List cartOrderDtoList = cartOrderDto.getCartOrderDtoList(); if(cartOrderDtoList == null || cartOrderDtoList.size() == 0){ // 카트 주문 상품이 없으면 실행 return new ResponseEntity("주문할 상품을 선택해주세요.",HttpStatus.FO..
장바구니 담는 로직 public Long addCart(CartItemDto cartItemDto, String email){ Item item = itemRepository.findById(cartItemDto.getItemId()) .orElseThrow(EntityExistsException::new); // 상품 추출 Member member = memberRepository.findByEmail(email); // 로그인된 사용자 추출 Cart cart = cartRepository.findByMemberId(member.getId()); // 카트 추출 if(cart == null){ // 카트가 Null이면 -> 신규가입자 cart = Cart.createCart(member); // 카트생..

Order에 orderId에 cancel로 이루어진다. 주문취소는 아무나 하면 안 되기 때문에 권한에 대한 판단이 필요 order에는 member를 식별할 수 있는 외래키를 가지고 있다*(email) 취소 : order -> cancel / orderItem -> cancel / addStock() 한 번 실행(주문 시 차감되었을 것이므로 수량 복구 차원) 자바스크립트 코드까지 고려해서 보면 이렇게 된다. 구조도로 정리하면