jpa

🔥 JPA의 영속 상태(Persistent State) 정리JPA를 제대로 이해하려면, **“영속 상태(Persistent State)”**를 중심으로 사고해야 합니다.이 개념을 정확히 이해하면, 다음과 같은 키워드들이 전부 하나로 연결됩니다:orphanRemovalflush()dirty checking (변경 감지)merge() JPA 엔티티 생명주기 4단계JPA는 엔티티 객체의 상태를 크게 다음 4단계로 나눕니다.상태 설명 예시비영속 (Transient)EntityManager에 등록되지 않은 상태new Member()영속 (Persistent)EntityManager가 객체를 추적(tracking)하며 DB와 연결된 상태em.persist(member)준영속 (Detached)한때 영속이었지만, ..
(root, query, criteriaBuilder) -> { ... } (root, query, criteriaBuilder) -> { ... }는 Java의 JPA Criteria API에서 사용되는 람다식입니다. 보통 Spring Data JPA에서 동적 쿼리를 만들 때 자주 등장하죠. 각각의 매개변수는 다음과 같은 역할을 합니다. ✅ rootEntity의 루트 객체입니다.조회하려는 테이블(또는 엔티티)의 정보를 나타냅니다.예: root.get("name") → name이라는 컬럼(필드)을 의미.✅ queryCriteriaQuery 객체입니다.쿼리 전체 구조를 정의할 수 있게 도와줍니다.예: query.select(...), query.where(...) 등을 설정할 수 있음.Specificati..
transient일상 뜻transient : 일시적인, 잠깐 머무는, 지나가는 JPA에서의 뜻transient 상태 = 아직 영속성 컨텍스트에도 없고, DB에도 저장되지 않은 상태 예시 문장: 오류 메시지InvalidDataAccessApiUsageExceptionobject references an unsaved transient instance - save the transient instance before flushing 즉,new로 객체는 만들었지만아직 save()도 안 했고entityManager.persist()도 안 했고그냥 메모리에만 있는 상태 JPA 객체 생명주기 비교 상태설명transient메모리에만 존재함 (new만 된 상태)persistent영속성 컨텍스트에 등록됨 (persist..
참고 링크https://scoring.tistory.com/entry/JPA-양방향-연관관계와-연관관계의-주인-양방향-매핑-정리⭐ JPA 연관 관계 한방에 정리 (단방향/양방향, 연관 관계의 주인, 일대일, 다대일, 일대다, 다대다)본문 바로가기   JPA에서 가장 중요한 것연관 관계 매핑은 그 때 그 때 찾아보기보다는 비즈니스 로직, 비즈니스 요구사항에 따라 개발자가 더 적절한 관계 설정 방법을 선택해야하는 주제이기 때문에 학습하기 위하여 아래에 정리를 했습니다.  연관 관계 정의 규칙연관 관계를 매핑할 때, 생각해야 할 것은 크게 3가지가 있습니다.방향 : 단방향, 양방향 (객체 참조)연관 관계의 주인 : 양방향일 때, 연관 관계에서 관리 주체다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:..
기존 양방향JPA 연관관계를 사용하여 사용자가 거래내역을 조회했을 때, 거래했던 상품들을 보여주고자 했다.Rental 클래스에 주문내역을 보여주고, RentalProducts에서 한 주문내역에 대한 제품들을 보여주도록 관계를 만들었다.💡 양방향 매핑 규칙객체의 두 관계중 하나를 연관관계의 주인으로 지정연관관계의 주인만이 외래 키를 관리(등록, 수정)주인이 아닌쪽은 읽기만 가능주인은 mappedBy 속성 사용X주인이 아니면 mappedBy 속성으로 주인 지정💡 연관 관계의 주인(Owner) 지정 방법외래키가 있는 곳을 주인으로 지정할것!→ Rental의 객체에서 값을 바꿨는데, RENTALPRODUCTS테이블에 쿼리문이 나가면 혼란스럽다.  @OneToMany, @ManyToOne을 사용하여 양방향 매..
sesam
'jpa' 태그의 글 목록