본문 바로가기

Programming134

19. Criteria 소개 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * Criteria 코드로 쿼리를 구성하는 API JPQL 대신 자바 코드 사용 CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(Review.class); /** * cq를 이용해서 쿼리 구성 */ Root root = cq.from(Review.class); cq.select(root); Predicate p = cb.conjunction(); if (hotelId != null) { p = cb.and(p, cb.equal(root.get("hotelId"), hotelId)); } p = cb.and(.. 2023. 4. 4.
18. JPQL 소개 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * JPQL JPA Query Language SQL 쿼리와 유사하다. 테이블, 칼럼명 대신 엔티티 이름, 속성을 사용한다. 테이블 대신 엔티티인 Review를 사용한다. r.hotelId 는 칼럼명이 아닌 Review의 필드 멤버, 즉 Review의 속성이다. createQuery()의 두 번째 인자로 해당 엔티티 클래스라는 것을 명시한다. 해당 메서드의 결과로 TypedQuery 객체가 생성된다. setParameter();를 통한 파라미터 바인딩이 가능하다. 위의 JPQL문에서 :Property 형태로 쓰인 부분에 바인딩을 해준다. setParameter();의 첫 번째 인자는 바인딩 될 부분 .. 2023. 3. 30.
17. 영속성 전파 & 연관 매핑 고려사항 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. find()로 찾아온 객체를 활용에서 persist()를 하면 에러가 발생하지 않는다. 새로 만든 객체를 활용해서 persist()를 하면 DB에 새롭게 만든 객체의 정보가 없으니까 에러가 발생한다. 그런데 오른쪽처럼 코드를 작성하고 싶으면 어떻게 해야할까? * 영속성 전파 연관된 엔티티에 영속 상태를 전파 : 나와 연관된 엔티티에 나의 영속상태가 바뀌는 것을 전파한다. 예, 저장할 때, 나와 연관된 엔티티도 함께 저장되게 하는 것. Team 클래스에서 확인할 수 있다 연관하는 애너테이션(@OneToOne, @OneToMany, @ManyToMany)에 cascade라는 속성의 값을 CascadeTy.. 2023. 3. 29.
16. 엔티티 간 1-N 단방향 연관 매핑 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * 1-N 단방향 연관 매핑 콜렉션을 사용한 매핑 : Set, List, Map * 1-N 단반향 Set 연관 매핑 참조키를 이용한 1-N 관계를 생성할 수 있다. player는 team_id를 통해 team 테이블을 참조한다. * 1-N 단방향 Set 연관 매핑 설정 Team 클래스에서 확인할 수 있다. @OneToMany, @JoinColumn(name = "참조할 칼럼")을 이용해 1-N 단방향 연관 매핑을 설정할 수 있다. * Set 저장 여러 Player를 find(); 해온 뒤, player들의 Set을 만들어서 저장하고 이를 Team에 넣어 persist(team);을 한다. team 데.. 2023. 3. 28.
15. 엔티티 간 N-1 단방향 연관 매핑 해당 강의는 코드 위주로 진행됩니다. 실질적인 객체 처리를 담당하는 코드는 링크에서 확인하시길 바랍니다. * N-1 단방향 연관 매핑 참조키를 이용한 N-1 관계를 생성할 수 있다. sight_review는 sight에 대한 review를 저장하는 테이블이다. sight_review는 sight_id를 통해 sight 테이블을 참조한다. * N-1 단방향 연관 매핑 설정 Review 클래스에서 확인할 수 있다. @ManyToOne, @JoinColumn(name = "참조할 칼럼")을 이용해 N-1 단방향 연관 매핑을 설정할 수 있다. * 저장 Review를 저장 할 때, Sight가 필요하기 때문에 해당 Sight를 em.find()로 읽어온 뒤, Review 객체 인스턴스를 생성할 때 넘겨준다. 저장.. 2023. 3. 28.
반응형