JPA (6) 썸네일형 리스트형 [JPA] JPA의 더티 체킹(dirty checking)이란? 오늘은 dirty checking(더티 체킹)에 대해서 알아보겠습니다. dirty checking(더티 체킹)이란?JPA에서 더티 체킹이란 영속성 컨테이너가 관리하는 엔티티의 상태를 감지해서, 변경된 부분이 있다면 자동으로 트랜잭션이 끝나는 시점에 데이터베이스에 반영하는 기능입니다. 쉽게 설명하면 dirty는 '엔티티의 변경된 부분' 그리고 checking은 '변경된 부분을 감지'한다라고 이해하시면 됩니다. 더 자세하게 이해하기 위해서 Spring Data JPA가 아닌 네이티브한 코드를 먼저 보겠습니다.@Slf4j@RequiredArgsConstructor@Servicepublic class OrderService { private final EntityManagerFactory entityMa.. JPA로 엔티티 설계 시 주의사항 및 고려사항을 알아보자 (개인적 견해) 출처https://velog.io/@guswlsdl0121/JPA로-엔티티-설계-시-주의사항https://velog.io/@kevin_/내가-NoargsConstructor-access-AccessLevel.PROTECTED를-왜-작성했을까https://www.inflearn.com/course/ORM-JPA-Basic/dashboardhttps://skatpdnjs.tistory.com/49https://mjoo1106.tistory.com/entry/Spring-Setter-vs-Builderhttps://koopi.tistory.com/53https://mangkyu.tistory.com/163 본 게시물은 위 출처들을 바탕으로 작성된 글입니다. 감사합니다특히, https://velog.io/@gu.. JPA영속성 컨텍스트(Persistence Context)에 대해 알아보자 안녕하세요 오늘은 JPA영속성 컨텍스트(Persistence Context)에 대해 알아보겠습니다. 0.JPA 동작 우선 JPA는 애플리케이션과 JDBC API 사이에서 동작합니다.(JPA는 ORM 기술 표준으로 사용되는 인터페이스의 모음. 즉, API임)1.애플리케이션에서 JPA로 동작 요청2.JPA가 JDBC API를 사용하여 SQL를 실행하고 그 결과를 반환받음. 여기서의 특징은 DB에 접근하여 데이터에 접근하지만 개발자는 객체 중심적으로 개발할 수 있는 것다는 것입니다. 1.JPA영속성 컨텍스트(Persistence Context)란?1. Entity를 영구 저장하는 환경2. JAVA 영역에서 데이터를 관리하며 DB 접근 역할을 수행한다.3. 애플리케이션과 DB 사이에서 객체를 보관,저장하는 .. JPA 프록시란? 오늘은 JPA 프록시에 대해 정리해보겠습니다.모든 설명과 강의 자료는 김영한 강사님 JPA 강의를 참고했습니다. Member를 조회할 때, Team도 함께 조회해야 할까?예를 들어, 멤버의 유저 네임만 출력하는 비지니스 로직이 있다고 가정해봅니다. 이때, DB에서 멤버와 팀이 연관 관계를 맺고 있다고 하여 팀 테이블까지 쿼리문을 사용하여 조회하거나 등의 동작을 수행하면 손해입니다. 즉, 사용하지 않는 테이블을 조회하거나 가져오는 등의 접근은 최적화가 되지 않은 것입니다.JPA는 이런 문제를 지연 로딩이랑 프록시로 해결합니다. 이번 시간에는 프록시에 대해서 알아보겠습니다. 프록시란 무엇인가?프록시는 JPA에서 실제 엔티티 객체 대신 데이터베이스 조회를 지연할 수 있는 가짜 객체를 의미합니다.프록시는 실제 .. JPA @JoinColumn에 대해서 알아보자 @JoinColumn를 아래 예시와 함께 알아보겠습니다. Member.java @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; private int age; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "TEAM_ID") private Team team; } ........... Team.java @Entity public class Team { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "team".. JPA 연관 관계, 연관 관계 매핑 그리고 연관 관계 주인 이해하기 연관 관계에 대해서 알아보겠습니다. 연관 관계가 필요한 이유는 무엇일까? 객체를 테이블에 맞춰 데이터 중심으로 모델링을 하게 되면 협력 관계를 제대로 형성할 수 없습니다. - 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾습니다. - 객체는 참조를 사용해서 연관된 객체를 찾습니다. 즉, 테이블의 조인과 객체의 참조의 패러다임이 완전히 다릅니다. 테이블의 조인과 객체의 참조의 패러다임이 어떻게 다른가? 객체의 연관 관계 특징 Member 객체는 Member.team 필드(멤버 변수로)로 팀 객체와 연관 관계를 맺습니다. 이는, member 객체와 team 객체의 단방향 관계를 의미합니다. 이때, Member 객체는 Team 객체를 참조할 수 있지만, Team 객체는 Member 객체를 참조할 수 없.. 이전 1 다음