임베디드 타입이란? 임베디드 타입은 기본 값 타입을 모아서 만들어진 복합 값 타입이라 한다. 아래 예제를 통해 알아보았다. 임베디드 타입 예제 아래 예제의 회원 엔티티는 간단하게 이름, 주소, 주소 상세, 우편 번호를 가진다. 그런데 주소, 주소 상세, 우편 번호는 하나의 객체로 표현이 가능한데 이를 임베디드 타입으로 정의하였다. Member.java@Entitypublic class Member { @Id @GeneratedValue private Long id; private String userName; @Embedded private Address address; // getter, setter 생략}Address.java(임베디드 타입)@Embeddable..
즉시 로딩과 지연 로딩이란? 아래 예제를 통해서 즉시 로딩과 지연 로딩에 대해서 알아보았다. 엔티티, 테이블 관계도 즉시 로딩이란? 즉시 로딩은 단어 의미대로 해석할 수 있으며, JPA 상에서 데이터를 조회할 때 연관된 모든 객체의 데이터까지 한 번에 불러오는 것이다. 즉시 로딩 예제 아래 Member 클래스의 Team 참조 변수에 FetchType.EAGER를 걸었는데 이는 Team도 같이 한번에 불러오는 즉시 로딩이다. Member.java@Entitypublic class Member { @Id @GeneratedValue private Long memberId; private String userName; @ManyToOne(fetch = FetchType.EAGER) ..
@MappedSuperclass 이란? 객체들 간에 공통된 필드가 있을 때 @MappedSuperclass 객체를 상속받아서 이런 공통된 필드를 매핑해 준다. 예를 들어 여러 테이블에 생성자 ID, 생성 시간, 수정자 ID, 수정 시간의 속성이 필요하다면 객체마다 공통된 필드를 일일이 선언하는 것이 아닌 @MappedSuperclass 객체를 상속받으면 해결된다. 예제 아래 예제에서 두 개의 게시판 객체가 있는데 두개의 게시판은 생성자 ID, 생성 시간, 수정자 ID, 수정 시간의 공통 필드가 존재한다. 두 개의 게시판 객체를 @MappedSuperclass 선언된 객체를 상속받기 전과 후로 테스트해보았다. @MappedSuperclass 선언 전@Entitypublic class Board1 { ..
