ORM, JPA ORM이란 객체지향 언어와 관계형 데이터베이스의 패러다임 불일치를 해결하고 서로 매핑시켜주는 것 Java 진영에는 JPA가 존재 JPA를 쓰지 않으면 개발자가 직접 모든 쿼리를 작성하며 객체 데이터베이스 간 매핑을 위한 DAO를 일일히 작성해야함 로직이 변경되면 관련된 모든 DAO를 수정해야함 JPA는 이러한 일련의 과정들을 생략하여 생산...
연관관계 방향 : 당방향, 양방향 존재 연관관계의 주인 : 양방향 연관관계에는 연관관계의 주인이 필요 다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 테이블에서는 한쪽 테이블에 FK가 존재하면 어느 방향으로든 조인 가능하지만 객체에서는 서로를 필드로 가져야 양방향 가능, 한쪽만 존재하면 단방향만 가능 객체 단방향 객체 A...
일대다, 일대일 일대다 단방향 매핑보다는 다대일 양방향 매핑을 사용해야 함 외래키 관리를 '다'쪽이 하는 것이 좋음 다른 테이블의 외래키를 관리하는 것이 성능, 관리 이슈가 있기 때문 일대일 관계에서는 어느쪽이든 외래키를 가질 수 있음 주 테이블에 외래 키를 두면 주 객체가 대상 객체를 참조하는 것처럼 객체지향적으로 사용 가능 대상 테이블에...
상속 관계 매핑 객체지향의 상속이라는 개념이 관계형 데이터베이스에는 없지만 유사한 슈퍼타입, 서브타입 관계가 존재함 슈퍼타입, 서브타입 논리 모델을 3가지 방법으로 구현 가능 조인 전략 자식 테이블이 부모 테이블의 기본 키를 기본 키 + 외래 키로 사용하는 전략 DTYPE 컬럼을 구분 컬럼으로 사용 부모 엔터티에 다음 어노테이션 ...
프록시 즉시 로딩 fetch = FetchType.EAGER 연관된 엔터티 함깨 조회 하이버네이트는 가능하면 SQL 조인을 사용해서 한 번에 조회 @ManyToOne, @OneToOne은 EAGER이 default 지연 로딩 fetch = FetchType.LAZY 연관된 엔터티 실제 사용 전까지 프록시 객체로 저장 @OneToMa...
값 타입 기본값 타입 자바 기본 타입 (int, double) 래퍼 클래스 (Integer) String 임베디드 타입 엔터티 임베디드 객체 필드에 다음 어노테이션 추가 @Embedded 임베디드 객체에 다음 어노테이션 추가 @Embeddable 임베디드 타입은 임베디드 타입을 포함할 수 있음 임베디드 타입은 엔터티를 참조할...
도전할 수 있는 방법이 생각날 때마다 포스팅 업데이트... 1 : N : NM 한방 쿼리 가능? 필자는 부모 하나에 @OneToMany 자식 2개는 defaultbatchfetch_size를 설정해서 쿼리 한번에 가져올 수 있는 것으로 알고 있다. (자식 자식) 그렇다면 부모 -> 자식 -> 손자로 @OneToMany가 두 번인 상황에서 쿼리 한 번...