본문 바로가기

Java/JPA43

[JPA] JOIN Null값 처리 🟦 기본 환경: IDE: IntelliJ, Language: Java 1 2 3 4 5 6 7 8 @Repository public interface TestDAO extends JpaRepository { @Query("SELECT t1, t2 FROM TestOne t1 LEFT JOIN ue.testTwo t2") List findAllWithTestOneTwo(); } 다음 소스코드를 실행하게 될 경우, TestTwo entity에 저장된 데이터가 없더라도 null값으로 조회가 가능(LEFT JOIN) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public List testList() { List queryResult = testDAO.f.. 2023. 6. 20.
[SpringBoot_JPA_Basic] JPA 1차 cache 이 글은 김영한의 [자바 ORM 표준 JPA 프로그래밍 - 기본편]을 수강하며 정리한 글입니다. 🟦 기본 환경: IDE: IntelliJ, Language: Java 1차 cache : EntityManager가 관리하는 영속성 컨텍스트(Persistence Context) 내부에 있는 첫 번째 캐시 비영속상태 : Entity Manager에 의해 관리되지 않는 상태 영속상태 : Entity Manager에 의해 관리되는 상태 ⭐ 영속성 컨텍스트에 저장 ≠ DB에 저장 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 32 33 34 35 36 37 38 39 40 package jpa_basic; imp.. 2023. 6. 16.
[JPA_Basic] JPA persist, find, remove, update 이 글은 김영한의 [자바 ORM 표준 JPA 프로그래밍 - 기본편]을 수강하며 정리한 글입니다. 🟦 기본 환경: IDE: IntelliJ, Language: Java Persistence.xml : JPA가 접근하고자하는 DB에 대해 필요한 설정 정보들을 기술해둔 파일 → JPA는 이 파일의 설정 정보를 바탕으로 접근할 DB의 정보를 가져 올 수 있음 EntityManagerFactory : EntityManager(Entity를 관리하고 DB 관련 작업을 수행 함)를 생성 : DB 당 1개 생성 EntityManager : 특정 작업을 위해 데이터베이스에 액세스 하는 역할 : DB에 저장되는 transaction 단위마다 생성 EntityTransaction : 데이터베이스 트랜잭션을 관리하기 위한 인.. 2023. 6. 15.
[SpringBoot_JPA_1] @PathVariable 이 글은 김영한의 [실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발]을 수강하며 정리한 글입니다. 🟦 기본 환경: IDE: IntelliJ, Language: Java @PathVariable : 요청 URL에서 변수를 추출하여 메소드 매개변수에 바인딩하는 역할 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 @GetMapping("items/{itemId}/edit") public String updateItemForm(@PathVariable("itemId") Long itemId, Model model){ Book item = (Book) itemService.findOne(itemId); BookForm form = new BookForm(); form.setId.. 2023. 6. 3.
[SpringBoot_JPA_1] TypedQuery 이 글은 김영한의 [실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발]을 수강하며 정리한 글입니다. 🟦 기본 환경: IDE: IntelliJ, Language: Java TypedQuery : 작성한 JPQL을 실행시키기 위해 만드는 쿼리 객체 * 반환 Type이 확실할 경우 TypedQuery, 불확실할 경우 Query 사용 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 public List findAllByString(OrderSearch orderSearch) { String jpql = "select o from Order o join o.member m"; boolean isFirstCondition = tr.. 2023. 6. 2.
[SpringBoot_JPA_1] @NoArgsConstructor 이 글은 김영한의 [실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발]을 수강하며 정리한 글입니다. 🟦 기본 환경: IDE: IntelliJ, Language: Java @NoArgsConstructor : 파라미터가 없는 기본 생성자 생성 OPTION - AccessLevel.PROTECTED : 기본 생성자의 접근 제어 = PROTECTED : 같은 pkg 또는 자식 class를 제외한 외부 클래스에서는 해당 객체의 인스턴스를 생성할 수 없음 - (default) AccessLevel.PUBLIC : 기본 생성자의 접근 제어 = PUBLIC : 모든 위치에서 접근 가능 @Entity를 통해서 기본생성자를 만들 수 있지만 @NoArgsConstructor를 통한 접근 제한을 지정함으로써 무분.. 2023. 5. 30.