Home
Youngho's Devlog
Cancel

[자바 ORM 표준 JPA 프로그래밍-기본편] 실전 예제6 - 값 타입 매핑

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 실전 예제 - 6. 값 타입 매핑 equals() 와 hashCode() 메소드를 구현할 때 getter로 멤버변수에 접근하는게 좋다. 프록시도 안정적으로 접근할 수 있도록 @Embeddable public class Address...

[자바 ORM 표준 JPA 프로그래밍-기본편] 값 타입 컬렉션

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 값 타입 컬렉션은 값 타입을 컬렉션에 담아서 쓰는 것을 말한다. 문제는 DB에 넣을때가 문제가 된다. 기본적으로 값 타입 컬렉션을 DB에 넣는 구조를 지원하지 않는다. 결론적으로 이러한 컬렉션들을 별도의 테이블로 뽑아야한다. (FAVORITE_FOOD 테이블, ADDRESS 테이...

[자바 ORM 표준 JPA 프로그래밍-기본편] 값 타입의 비교

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 값 타입: 인스턴스가 달라도 그 안에 값이 같으면 같은 것으로 봐야 함 int a = 10; int b = 10; a == b ? => true! Address a = new Address(“서울시”) Address b = new Address(“서울시”) a ...

[자바 ORM 표준 JPA 프로그래밍-기본편] 값 타입과 불변 객체

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 값 타입은 복잡한 객체 세상을 조금이라도 단순화하려고 만든 개념이다. 따라서 값 타입은 단순하고 안전하게 다룰 수 있어야 한다. 값 타입 공유 참조 임베디드 타입 같은 값 타입을 여러 엔티티에서 공유하면 위험함 공유하려면 값 타입이 아닌 엔티티로 만들어...

[자바 ORM 표준 JPA 프로그래밍-기본편] 임베디드 타입

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 임베디드 타입(복합 값 타입) 새로운 값 타입을 직접 정의할 수 있음 JPA는 임베디드 타입(embedded type)이라 함 주로 기본 값 타입을 모아서 만들어서 복합 값 타입이라고도 함 int, String과 같은 값 타입 추적도 안되고 변...

[자바 ORM 표준 JPA 프로그래밍-기본편] 기본값 타입

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 목차 기본값 타입 임베디드 타입(복합 값 타입)(중요!) 값 타입과 불변 객체 값 타입의 비교 값 타입 컬렉션(중요!) 실전 예제 - 6. 값 타입 매핑 JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 ...

[자바 ORM 표준 JPA 프로그래밍-기본편] 실전 예제5 - 연관관계 관리

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 글로벌 페치 전략 설정 모든 연관관계를 지연 로딩으로 @ManyToOne, @OneToOne은 기본이 즉시 로딩이므로 지연로딩으로 변경 영속성 전이 설정 Order -> Delivery를 영속성 전이 ALL 설정 Order -> OrderItem을...

[자바 ORM 표준 JPA 프로그래밍-기본편] 영속성 전이: CASCADE

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 영속성 전이: CASCADE 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들도 싶을 때 예: 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장. 영속성 전이: 저장 @OneToMany(mappedBy="p...

[자바 ORM 표준 JPA 프로그래밍-기본편] 즉시 로딩과 지연 로딩

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. Member를 조회할 때 Team도 함께 조회해야 할까? 단순히 member 정보만 사용하는 비즈니스 로직 println(member.getName()) 메소드가 있다고 해보자. 지연 로딩 LAZY을 사용해서 프록시로 조회 @Entity public class Member...

[자바 ORM 표준 JPA 프로그래밍-기본편] 프록시와 연관관계 관리

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 프록시 Member를 조회할 때 Team도 함께 조회해야 할까? 회원과 팀 함께 출력 public void printUserAndTeam(String memberId) { Member member = em.find(Member.class, memberId); ...