Hibernate 데이터 로드 방식

2420 단어 sqlHibernate
Hibernate 데이터 로 딩 방식 Hibernate 는 다음 과 같은 몇 가지 데이터 로 딩 방식 을 지원 합 니 다. 즉시 로 딩 (Immediate Loading) 실체 로 딩 이 완 료 된 후 즉시 관련 데이터 로 딩 지연 (Lazy Loading) 실 체 를 불 러 올 때 관련 데 이 터 는 바로 가 져 오 는 것 이 아니 라 관련 데이터 가 처음 방 문 했 을 때 읽 습 니 다. 미리 불 러 오기 (Eager Loading) 가 미리 불 러 올 때실체 와 관련 된 대상 을 동시에 읽 습 니 다. 이것 은 실시 간 으로 불 러 오 는 것 과 유사 하지만 실체 와 관련 된 데 이 터 는 SQL 문 구 를 통 해 (외부 연결 기반 [outer join]) 동시에 읽 습 니 다. 일괄 로드 (Batch Loading) 는 실시 간 로드 와 지연 로드 에 대해 일괄 로드 방식 으로 성능 에 최 적 화 된 실시 간 로드 (Immediate Loading) 설정 은 다음 과 같 습 니 다.
<set name="address"
		table="t_address"
		inverse="true"
		cascade="none"
		sort="unsorted"
		lazy="false">
		<key column="user_id">
		</key>
		<one-to-many class="com.hpjianhua.hibernate.Address"/>
	</set>

즉시 불 러 오 는 기본 원리: 숙주 실체 (관련 주체) 를 불 러 올 때 Hibernate 는 관련 데 이 터 를 자동 으로 읽 고 관련 속성 을 채 웁 니 다. 지연 불 러 오기 (Lazy Loading) 설정 은 다음 과 같 습 니 다.
	<set name="address"
		table="t_address"
		inverse="true"
		cascade="none"
		sort="unsorted"
		lazy="true">
		<key column="user_id">
		</key>
		<one-to-many class="com.hpjianhua.hibernate.Address"/>
	</set>

미리 불 러 오기 (Eager Loading) 미리 불 러 오 는 것 은 outer - join 을 통 해 관련 데 이 터 를 불 러 오 는 것 입 니 다. 그러면 하나의 SQL 문 구 를 통 해 실체 와 관련 데이터 의 읽 기 작업 을 완성 할 수 있 습 니 다. 실시 간 으로 읽 는 두 개, 심지어 여러 개의 SQL 에 비해 이러한 메커니즘 은 성에 있어 더 많은 향상 을 가 져 올 수 있 습 니 다. 일괄 불 러 오기 (Batch Loading) 를 대량으로 불 러 옵 니 다. 쉽게 말 하면...여러 한정 조건 을 일괄 제출 하여 한 번 에 여러 데이터 의 읽 기 를 완료 하 는 것 입 니 다. 예 를 들 어 다음 형식의 SQL: Select from User where id = 1;Select from User where id=3; 우 리 는 SQL 문 구 를 통합 하여 같은 기능 을 완성 할 수 있 습 니 다. Select from User where id = 1 or id = 3;    이것 이 바로 일괄 로 딩 메커니즘 입 니 다. 일괄 로 딩 메커니즘 을 사용 하면 Hibernate 는 데이터 조회 작업 을 하기 전에 현재 Session 에서 같은 유형의 로 딩 할 데이터 가 있 는 지 자동 으로 찾 습 니 다. 있 으 면 현재 selection 구문 에 검색 조건 을 합 쳐 제출 합 니 다. 이렇게 하면,데이터베이스 작업 을 통 해 여러 읽 기 작업 을 수행 할 수 있 습 니 다. 실체 설정 의 class 노드 에서, 우 리 는 batch - size 매개 변 수 를 통 해 대량 불 러 오 는 메커니즘 을 열 수 있 으 며, 매번 대량 불 러 오 는 수량 을 제한 할 수 있 습 니 다. < class name = "User" table = "t user" batch - size = "5" > 일반적으로, batch - size 는 합 리 적 인 소형 수치 (< 10) 로 설정 해 야 합 니 다.

좋은 웹페이지 즐겨찾기