티스토리 뷰

이 글 중 Hibernate 에 관한 글은 창작 글이 아니라, 맨 아래에 출처를 밝힌 사이트의 글 일부를 번역한 것입니다.
create table EMPLOYEE (
   id INT NOT NULL auto_increment,
   first_name VARCHAR(20) default NULL,
   last_name  VARCHAR(20) default NULL,
   salary     INT  default NULL,
   PRIMARY KEY (id)
);

위 테이블은 아래 테이블과 one to many 연관관계가 있다. certificate 테이블에 idx 컬럼이 있는 것을 볼 수 있는데, certificate 자체가 list collection 테이블이기 때문이다.

create table CERTIFICATE (
   id INT NOT NULL auto_increment,
   certificate_name VARCHAR(30) default NULL,
   idx INT default NULL, 
   employee_id INT default NULL,
   PRIMARY KEY (id)
);

Hibernate 에서 리스트를 구현하는 방식은 아래와 같다:

<list name = "certificates" cascade="all">
 <key column = "employee_id"/>
 <list-index column = "idx"/>
 <one-to-many class="Certificate"/>
</list>

xml 형식의 hibernate mapping file의 일부를 가져온 것이다.

지연 로딩이란?

Lazy loading, 지연 로딩은 결국 연관관계가 있는 두 테이블 중 한 테이블에 대한 동작(예. 조회)만 필요할 때 한 쪽에 외래 키의 역할을 하는 변수로 선언된 객체에 대한 쿼리는 지연시키고 나중에 생성하는 것이다. 예를 들어, Review 에 대한 정보만 필요할 때에는 Review 엔티티의 hospitalId 변수에 대한 조회는 필요하지 않다. 그러면 모든 다른 변수들에 대해서는 SELECT 쿼리가 실행되지만 이 변수에 대한 쿼리는 나중에 추가적으로 이 변수를 조회할 때까지 미루는 것이다. 미루는 동안에는 proxy 객체로 대상 객체를 변환해준다.

출처

https://www.tutorialspoint.com/hibernate/hibernate_list_mapping.htm

 

Hibernate - List Mappings

Hibernate - List Mappings A List is a java collection that stores elements in sequence and allow duplicate elements. The user of this interface has precise control over where in the list, each element is inserted. The user can access elements by their inte

www.tutorialspoint.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함