일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- transaction
- JPQL
- 스프링 핵심 원리
- http
- 알고리즘
- QueryDSL
- 스프링
- 그리디
- Thymeleaf
- 김영한
- SpringBoot
- springdatajpa
- Spring Boot
- pointcut
- 스프링 핵심 기능
- java
- 인프런
- db
- 자바
- 백준
- AOP
- spring
- Servlet
- kotlin
- JDBC
- Android
- Proxy
- jpa
- Greedy
- Exception
- Today
- Total
목록jpa (149)
개발자되기 프로젝트
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dcMvS8/btrbCtDxIJp/2XhDdawyAkE1QOlKJhPZlK/img.png)
1. JPA에서 가~~장 중요한 두 가지 객체와 관계형 데이터베이스 매핑 (Object Relational Mapping) 💥영속성 컨텍스트 2. EntityManagerFactory와 EntityManager Hello JPA 1. JPA 구동방식 Persistence에서 설정정보 조회 EntityManagerFactory 생성 - EntityManagerFactory는 애플리케이션 로딩 시 딲! 하나 만 만들어 놔야함. - EntityManagerFactory 생성위해서는 PersistenceUnitN.. bsh-developer.tistory.com 3. Persistence Context(영속성 컨텍스트) JPA를 이해하는데 가장 중요한 용어 "엔티티를 영구 저장하는 환경"이라는 뜻 EntityM..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Zawss/btrbpPuNiNY/3L82npn8oq6xKKuQNBdJjK/img.png)
1. JPA 구동방식 Persistence에서 설정정보 조회 EntityManagerFactory 생성 - EntityManagerFactory는 애플리케이션 로딩 시 딲! 하나 만 만들어 놔야함. - EntityManagerFactory 생성위해서는 PersistenceUnitName이 필요 - PersistenceUnitName은 persistence.xml에서 입력한 값이다. - entityManagerFactory를 만드는 순간 DB랑 연결도 완료됨. EntityManager 생성 - 쿼리를 날리기 위해서는 EntityManagerFactory에서 EntityManager를 꺼내야 함. - DB커넥션을 얻고 종료되는 Transaction 단위마다 entityManager 생성 필요. -->쉽게말해..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bocKUP/btrbuAwnugP/SWjBLWNh2TlDNVd9TmxdEk/img.png)
1. H2 DB 설치 H2 Datebase 1. H2 DB 설치 및 사용법은 이전 글 참고 H2 Database 설치 및 사용 법 2021.05.22 - [JPA] - H2 In-Memory DB H2 In-Memory DB 1. H2 DB 란? DB는 JAVA기반의 경량화된 관계형 DB file 로 저장하여 실제 DB처럼.. bsh-developer.tistory.com 가벼움 메모리DB 웹용 쿼리 툴 MySQL, Oracle 시뮬레이션 가능 시퀀스, Auto Increment 지원 2. 메이븐 사용 groupId : jpa-basic artifactId: ex1-hello-jpa version : 1.0.0 pom.xml - hibernate 버전은 스프링 홈페이지에서 확인 가능. - hibernat..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DCnhg/btrbrT4dPMi/vnKfyAEtYwhRhrT62KHXeK/img.png)
객체지향적으로 설계를 할 수록 관계형 DB에 매핑하기 어려워진다....뭔가 필요하다. 이에 대한 JAVA진형의 해답이 JPA 1. JPA? Java Persistence API Java ORM 기술 표준 2. ORM? Object Relational Mapping(개체 관계 매핑) 객체는 객체대로 설계 관계형 DB는 관계형 DB대로 설계 ORM 프레임워크가 중간에서 매핑 3. JPA는 애플리케이션과 JDBC사이에서 동작 Java applicartion JPA JDBC->SQL->DB JPA 동작 - 저장 - JPA가 객체와 관계형 데이터베이스의 패러다임 불일치 해결! JPA 동작 - 조회 4. JPA는 표준 명세 JPA는 인터페이스의 모음 JPA의 구현체가 Hibernate 5. JPA를 왜 사용해야 할..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Q2aP9/btrblP2tOdN/kf2dk0kqyyuarLSP1mYkr0/img.png)
1. 주문 목록 검색 @GetMapping orders받아서 model에 전달 @ModelAttribute?? - 스프링에서 JSP파일에서 반환되는 Model에 값을 주입하거나 바인딩할 경우에 사용됨. - 여기서는 JSP에서 반환대는 orderSearch과 바인딩하기 위해 사용. - 해당 값을 통해 검색 옵션이 반영됨. - Annotation that binds a method parameter or method return value to a named model attribute, exposed to a web view. @GetMapping("/orders") public String OrderList(@ModelAttribute("orderSearch")OrderSearch orderSearch,..
1. OrderController @Controller @RequiredArgsConstructor public class OrderController { private final OrderService orderService; private final MemberService memberService; private final ItemService itemService; @GetMapping("/order") public String createForm(Model model){ List members = memberService.findMembers(); List items = itemService.findItems(); model.addAttribute("members", members); model..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/chOeDx/btrbmyfB3Bj/XtduFsQvqKZzBmUuwvHTq1/img.png)
너~~~~~~~~~~~무 중요 1. 변경감지, dirty checking 일반적으로 Transaction안에서 엔티티가 변경이 되면, flush가 되는 시점에 dirty checking을 통해 변경된 내용에 대해 update query가 실행된다. 이를 dirty checking이라 한다. 하지만 문제는 영속성 컨텍스트가 관리하지 않는 준영속 엔티티에서 발생한다. Dirtycheck, 성능이슈 @Service public class CommentService { @Autowired private CommentRepository commentRepository; @Transactional public void innit(){ for(int i=0; i comments = commentRepository.f..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/v9353/btrbpPuhZ89/gL3k1Kk7YZxO0Xz8sM0m3K/img.png)
1. 상품 등록 BookForm - 상품 등록을 위한 fom 객체 - 상품 정보를 전달함 - id는 추후 상품 수정 시 사용함. @Getter @Setter public class BookForm { private Long id; //수정에 사용용 private String name; private int price; private int stockQuantity; private String author; private String isbn; } ItemController - setter를 통해 값을 넣기 보다는 - static 생성자를 통해 값을 넣어주자. - 실무에서는 setter안씀. @Controller @RequiredArgsConstructor public class ItemController..