개발중/Java Persistence API (JPA)28 JPA / 프록시 알아보기 프록시 ? 객체는 객체 그래프로 연관된 객체들을 탐색한다. 그런데 객체가 DB 에 저장되어 있으므로 연관된 객체를 마음껏 탐색 하기는 어렵다. JPA 구현체들은 이 문제를 해결하려고 프록시라는 기술을 사용한다. 프록시를 사용하면 연관된 객체를 처음부터 DB에서 조회하는 것이 아니라 실제 사용하는 시점에 DB를 조회할 수 있다. 하지만 자주 함께 사용하는 객체들을 조인을 사용해서 함께 지원하는 것이 효과적이다. ✅ 프록시 객체? 지연로딩 기능을 사용하려면 실제 엔티티 객체 대신에 DB 조회를 지연할 수 있는 가짜 객체가 필요한데 이것을 프록시 객체라고 한다. ✅ 프록시 기초 JPA 에서 식별자로 엔티티 하나를 조회할 때는 EntityManager.find() 를 사용한다. 이 메소드는 영속성 컨텍스트에 엔.. 개발중/Java Persistence API (JPA) 2021. 6. 28. 식별 관계와 비식별 관계 구분 식별 관계 / 비식별 관계 매번 많이 사용 되는데 확실한 개념은 매번 짚고 가려 하지만 매번 헷갈리는 식별 관계와 비식별 관계 제대로 정리하기 데이터베이스 테이블 사이에 관계는 외래 키가 기본 키에 포함 되는지 여부에 따라 식별 관계와 비식별 관계로 구분한다. DB TABLE을 설계할 때는 식별관계 OR 비식별관계 하나를 택해야 한다. 최근에는 비식별 관계를 주로 사용하고 꼭 필요한 곳에만 식별 관계를 사용하는 추세이다. JPA 는 식별관계와 비식별 관계 모두 지원한다. ✅ 식별 관계 식별 관계는 부모 테이블의 기본키를 내려 받아서 자식 테이블의 기본키 + 외래키를 사용하는 관계이다. ✅ 비식별 관계 비식별 관계는 부모 테이블의 기본키를 받아서 자식 테이블의 외래 키로만 사용하는 관계이다. - 필수적 비.. 개발중/Java Persistence API (JPA) 2021. 6. 25. JPA - 어노테이션 정리 JPA 책을 읽다가 기록하고 내 것으로 만들고 싶은 부분 기록 😏 어노테이션 @JoinColumn 외래키를 매핑 할 떄 사용한다. @Column 객체 필드를 테이블 컬럼에 매핑 한다. @Enumerated 자바의 enum 타입을 매핑할 때 사용. @Temporal 날짜 타입을 매핑할 때 사용. @Lob 데이터 베이스 BLOB, CLOB 타입과 매핑한다. 더보기 @LOB 에는 지정할 수 있는 속성이 없다. 대신에 매핑하는 필드 타입이 문자면 CLOB 으로 매핑하고 나머지는 BLOB 으로 매핑한다. - CLOB : String, char[], java.sql.CLOB - BLOB : byte[], java.sql.BLOB @Transient 이필드는 매핑하지 않는다. 따라서 데이터 베이스에 저장하지 않고 조.. 개발중/Java Persistence API (JPA) 2021. 6. 25. JPA / 객체 간 연관관계 매핑 - 기록 JPA 책을 읽다가 기록하고 내 것으로 만들고 싶은 부분 기록 ✅ DB Table 구성 CREATE TABLE MEMBER ( MEMBER_ID VARCHAR(255) NOT NULL , TEAM_ID VARCHAR(255) , USERNAME VARCHAR(255) , PRIMARY KEY (MEMBER_ID) ) ; CREATE TABLE TEAM ( TEAM_ID VARCHAR(255) NOT NULL , NAME VARCHAR(255) , PRIMARY KEY (TEAM_ID) ) ; ALTER TABLE MEMBER ADD CONSTRAINT FK_MEMBER_TEAM FOREIGN KEY (TEAM_ID) REFERENCES TEAM ; ✅ Class - Member class Member {.. 개발중/Java Persistence API (JPA) 2021. 6. 25. 이전 1 2 3 다음