히 버 네 이 트 코어 참조 매 뉴 얼 학습 노트 - 장 1. 튜 토리 얼
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.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA 및 PostgreSQL 텍스트다음은 의 친구들과 논의한 후 오랫동안 초안으로 작성한 블로그 게시물이며 ( ) 주제에 대한 훌륭한 기사를 작성했기 때문에 여기에 작은 테스트를 게시하고 있습니다. JPA 주석 없이 String를 선언합니다. 재현하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.