Hibernate 게 으 름 태그 의 lazy

3490 단어 hibernate게으르다
본문 연구 의 주요 내용 은
레이 지 의 개념:진정 으로 어떤 대상 을 사용 할 때 만 이 대상 을 불 러 옵 니 다.
Hibernate 의 lazy 정책 은:
1.탭 에서 값 을 추출 할 수 있 습 니 다:true/false.
2.탭 에서 값 을 추출 할 수 있 습 니 다:true/false,클래스 강화 도구 가 필요 합 니 다.바이트 코드 를 수정 해 야 합 니 다.(이것 은 큰 의미 가 없습니다.)
3.탭 에서 값 을 추출 할 수 있 습 니 다:true/false/extra.
4.단일 연결 탭 에서 값 을 추출 할 수 있 습 니 다:false/proxy/noproxy
클 라 스 태그 에 있 는 레이 지 를 살 펴 보 겠 습 니 다.
User.java:

public class User {
	/* ID */
	private int id;
	/*     */
	private String name;
	/*      */
	private String password;
	/*      */
	private Date createTime;
	//  setter getter  
}
User.hbm.xml:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<!-- package         --> 
<hibernate-mapping package="com.lixue.bean"> 
  <!-- class   name       ,table           table    --> 
  <class name="User" table="t_user" lazy="true"> 
    <id name="id"> 
      <generator class="native" /> 
    </id> 
     
    <!--        --> 
    <property name="name" /> 
    <property name="password" /> 
    <property name="createTime" /> 
 
  </class> 
</hibernate-mapping> 
테스트 방법:

public void testLoad1(){
	/*  User,load         (class   lazy       )*/
	User user = (User) HibernateUtils.getSession().load(User.class, 1);
	/*    sql(  ID            ,      )*/
	System.out.println("user.id=" + user.getId());
	/*   sql,            ,     sql  ,              ,             */
	System.out.println("user.name=" + user.getName());
	/*    sql(  name         )*/
	System.out.println("user.password=" + user.getPassword());
	/*    sql(  name          )*/
	System.out.println("user.createTime=" + user.getCreateTime());
}
User user = (User) HibernateUtils.getSession().load(User.class, 1);에 정지점 을 찍 어 테스트 합 니 다!
대상 은 대상 user-->handler--->target 노드 에 나타 납 니 다.그림:

1.처음에 target 은 null 이 었 습 니 다.user.getId()을 실 행 했 을 때 도 null 이 었 습 니 다.ID 가 우리 가 조회 할 때 이미 지정 되 었 기 때문에 조회 하 는 것 은 의미 가 없습니다.
2.집행user.getName()할 때 한 문장 을 보 냈 다.그림 과 같다.

그림 에서 알 수 있 듯 이 ID 를 조회 할 때 문 구 를 보 내지 않 았 습 니 다.이것 은 우리 가 방금 말 했 습 니 다.우리 가 name 속성 을 조회 할 때 문 구 를 보 냈 고 이 문장의 기능 은 모든 속성 을 조회 하 는 것 입 니 다.
3.실행user.getPassword()user.getCreateTime()을 할 때 문 구 를 보 내지 않 습 니 다.이미 속성 치 를 조 회 했 기 때 문 입 니 다.
주:탭 에 있 는 lazy 는 일반 속성 만 지원 하 며 클래스 의 집합 로드 에 영향 을 주지 않 습 니 다.
총결산
이상 은 바로 본 고 에서 Hibernate 게 으 름 을 피 우 는태그 의 레이 지 에 관 한 모든 내용 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.관심 이 있 는 친 구 는 본 사이트 의 다른 관련 주 제 를 계속 참고 할 수 있 습 니 다.부족 한 점 이 있 으 면 댓 글로 지적 해 주 십시오.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기