히 버 네 이 트 코어 참조 매 뉴 얼 학습 노트 - 장 1. 튜 토리 얼

6238 단어 hibernate자바
더 읽 기
Hibernate Core Reference Manual
Chapter 1. TutorialTable of Contents1.1. Part 1 - The first Hibernate Application1.1.1. Setup1.1.2. The first class1.1.3. The mapping file1.1.4. Hibernate configuration1.1.5. Building with Maven1.1.6. Startup and helpers1.1.7. Loading and storing objects1.2. Part 2 - Mapping associations1.2.1. Mapping the Person class1.2.2. A unidirectional Set-based association 1.2.3. Working the association 1.2.4. Collection of values 1.2.5. Bi - directional associations 1.2.6. Working bi - directional links 1.3. 파 트 3 - The EventManager web application 1.3.1. Writing the basic servlet 1.3.2. Processing and rendering 1.3.3. Deploying and testing 1.4. 요약 1.1. 첫 번 째 Hibernate 응용 프로그램 자바 빈 류 는 다음 과 같 습 니 다.getter 와 setter 방법 은 추천 하 는 디자인 모델 입 니 다.하지만 하 이 버 네 이 트 에 게 꼭 필요 한 것 은 아니다.Hibernate 는 클래스 의 속성 에 직접 접근 할 수 있 습 니 다.Hibernate 는 Public, private, proctected 수식 의 getter 와 setter 방법 을 방문 할 수 있 습 니 다. 예 를 들 어 Public, private, proctected 수식 의 속성 을 직접 방문 할 수 있 습 니 다.지구 화 될 모든 종 류 는 인삼 이 없 는 구조 함수 가 필요 합 니 다. Hibernate 는 반 사 를 사용 하여 대상 을 만 들 기 때 문 입 니 다.구조 함 수 는 private 일 수 있 습 니 다.그러나 package or public visibility is required for runtime proxy generation and efficient data retrieval without by tecode instrumentation. Hibernate 는 지구 화 된 대상 을 불 러 오고 저장 하 는 방법 을 알 아야 합 니 다.이것 이 바로 Hibernate 프로필 의 역할 입 니 다.설정 파일 은 데이터베이스 에 있 는 표, 열 에 접근 하 는 방법 을 알려 줍 니 다.Hibernate 프로필 에 사 용 된 type 은 자바 데이터 형식 도 아니 고 SQL 데이터 형식 도 아 닌 Hibernate 맵 형식 입 니 다.변환 기 는 자바 형식 에서 SQL 형식 으로 바 꿀 수도 있 고 반대로 바 꿀 수도 있다.type 이 설정 되 어 있 지 않 으 면, Hibernate 는 올 바른 맵 종 류 를 확인 하려 고 시도 합 니 다.어떤 경우 에 자바 반사 기술 을 사용 한 자동 검 측 은 당신 이 원 하 는 결 과 를 얻 을 수 없습니다.예 를 들 어 java. util. Date 형식, Hibernate 는 SQL 에 비 춰 야 할 date, timestamp 인지 time 형식 인지 모 릅 니 다.또한 이러한 자동 검 사 는 시간 과 자원 을 소모 할 수 있 으 며 성능 을 중시 하면 type 속성 을 명확 하 게 설정 하 는 것 이 좋 습 니 다.Session Factory 는 전체적인 공장 으로 특정한 데이터 베 이 스 를 대표 합 니 다.만약 여러 개의 데이터 베 이 스 를 가지 고 있다 면, 설정 파일 에 여러 개의 Session Factory 를 설정 해 야 합 니 다.If you give the org.hibernate.SessionFactory a name in your configuration, Hibernate will try to bind it to JNDI under that name after it has been built. Another,better option is to use a JMX deployment and let the JMX - capable container instantiate and bind a HibernateService to JNDI. Such advanced options are discussed later. 낯 선 명사 들 이 많이 있 으 니 개념 부터 살 펴 보 자.
The getCurrentSession () method always returns the "current" unit of work. hibenate. cfg. xml 파일 에 있 는 설정 기억 나 시 죠?
 




    
        
        
   
        thread

    

 
 
Hibernate 는 위의 설정 에 따라 현재 작업 단원 의 상하 문과 현재 자바 라인 을 연결 합 니 다.
getCurrentSession () 을 처음 호출 할 때 org. hibenate. Session 을 생 성 한 다음, Hibernate 는 Session 을 현재 스 레 드 에 연결 합 니 다.트 랜 잭 션 이 끝 날 때 제출 이 든 스크롤 백 이 든 Hibernate 는 자동 으로 세 션 과 현재 스 레 드 를 연결 해제 하고 세 션 을 닫 습 니 다.getCurrentSession () 을 다시 호출 하면 새로운 org. hibenate. session 을 얻 고 새로운 작업 단원 을 시작 할 수 있 습 니 다.org. hibenate. ession 의 scope 는 매우 유연 합 니 다. 모든 데이터 베 이 스 를 위해 새로운 org. hibenate. ession 을 만들어 서 는 안 됩 니 다.1.2. Part 2 - Mapping associations 당신 이 다 루어 야 할 디자인 질문 은 다음 과 같 습 니 다: directionality, multiplicity, and collection behavior. Hibernate 는 자동 으로 개체 가 수정 되 었 고 업데이트 되 어야 함 을 감지 합 니 다. 이 를 자동 더러 운 검사 라 고 합 니 다. 대상 이 지속 적 인 상태 에 있 는 한, 예 를 들 어 session. load () 를 통 해방법 불 러 오 는 대상
 
/**
	 * Return the persistent instance of the given entity class with the given identifier,
	 * assuming that the instance exists. This method might return a proxied instance that
	 * is initialized on-demand, when a non-identifier method is accessed.
	 * 

* You should not use this method to determine if an instance exists (use get() * instead). Use this only to retrieve an instance that you assume exists, where non-existence * would be an actual error. * * @param entityName a persistent class * @param id a valid identifier of an existing persistent instance of the class * @return the persistent instance or proxy * @throws HibernateException */ public Object load(String entityName, Serializable id) throws HibernateException;
 
즉, 대상 은 특정한 org. hibenate. ession 에 연결 되 어 있 으 며, Hibernate 는 어떠한 변화 도 모니터링 하고 배경 에서 SQL 을 실행 하 는 것 이다.메모리 와 데이터 베 이 스 를 동기 화 하 는 과정 은 보통 작업 단원 의 마지막 (예 를 들 어 commt 나 rollback) 에서 발생 하 는데 이것 을 flushing 이 라 고 한다.
persistent 상태 에 있 는 대상 이 org. hibenate. ession 과 연결 을 끊 으 면 이 상 태 를 detached 라 고 합 니 다.detached 상태 에서 의 모든 변 화 는 update 방법 을 통 해 지속 할 수 있 습 니 다.Hibernate 는 모든 JDK 형식 을 값 형식 (value types) 으로 봅 니 다.당신 도 자신의 값 형식 을 만 들 수 있 습 니 다.값 유형 집합 과 실체 유형 집합 이 맵 에 있 는 차이 점 에 주의해 야 합 니 다.
 
 

            
            
        
 
 맵 파일 에서 inverse 속성 은 무엇 을 하 는 데 사 용 됩 니까?당신 에 게 자바 에 대한 양 방향 연결 은 간단 한 쌍방의 인용 입 니 다.그러나 하 이 버 네 이 트 에 게 는 SQL INSERT 와 UPDATE 문 구 를 정확하게 구성 할 수 있 는 충분 한 정보 가 없다.어느 쪽 의 관련 inverse 를 Hibernate 에 게 다른 쪽 의 거울 로 간주 하 라 고 알려 줍 니 다.이것 이 바로 Hibernate 가 하나의 관계 모델 에서 데이터베이스 모델 로 전환 하 는 과정 에서 발생 하 는 문 제 를 해결 하기 위해 필요 한 모든 정보 입 니 다.
 쓰다
규칙 은 매우 명확 하 다. 모든 양 방향 관련 은 한쪽 inverse 가 필요 하 다.한 쌍 의 다 중 관련 중 에는 반드시 많은 쪽 이 어야 한다.여러 쌍 의 관련 중에서 너 는 한 쪽 을 마음대로 선택 할 수 있다.
  
1.3. Part 3 - The EventManager 웹 애플 리 케 이 션 은 하나의 request 에서 Hibernate Session 을 사용 합 니 다.모든 데이터베이스 작업 이 하나의 Session 을 사용 하 는 것 이 아 닙 니 다.the session-per-request pattern. Instead of the transaction demarcation code in every servlet, you could also write a servlet filter. See the Hibernate website and Wiki for more information about this pattern called Open Session in View. You will need it as soon as you consider rendering your view in JSP, not in a servlet.

좋은 웹페이지 즐겨찾기