Hibernate 맵
2589 단어 Hibernate
프 록 시 키,업무 적 의 미 를 갖 추 지 않 은 필드,
가능 한 한 자연 키 를 사용 하 는 것 을 피해 야 한다.
2.==으로 두 대상 의 메모리 주소 가 같은 지 비교 합 니 다.Object 류 의 equals(object o)도 메모리 주소 에 따라 비교 합 니 다.사용자 류 가 equal 방법 을 덮어 쓰 지 않 았 다 면 주소 에 따라 비교 합 니 다.
JAVA API 의 일부 클래스 는 Object 류 의 equal(Object o)방법 을 덮어 대상 값 에 따라 비교 합 니 다.
String 클래스,Date 클래스,Byte,Integer,Short,Character,Long,Float,Double,Boolean
3.
increament
identity
sequence
hilo
native
assigned 는 자연 키 에 적용 되 며,프로그램 이 값 을 설정 합 니 다.
4. increment
increment 식별 자 생 성 기 는 하나의 Hibernate 프로그램 만 데이터베이스 에 접근 하 는 경우 에 만 유효 합 니 다.즉,같은 프로 세 스에 서 두 개의 연결 데이터 베 이 스 를 만 드 는 Session Factory 인 스 턴 스 는 삽입 에 실패 할 수 있 습 니 다.
increment 생 성 식별 자 체 제 는 바 텀 데이터 베이스 에 의존 하지 않 고 모든 시스템 에 적합 합 니 다.
하나의 Hibernate 프로그램 에 만 적용 되 며,클 러 스 터 에 서 는 추천 하지 않 습 니 다.
5. identity
데이터베이스 에 의존 하여 데이터 베 이 스 를 지원 해 야 합 니 다.
DB2,MySQL,Ms SQL Server, Sybase, HSQLDB, informix
6. sequence
데이터베이스 에 의존 하여 데이터 베 이 스 를 지원 해 야 합 니 다.
Oracle, DB2
7. hilo
데이터베이스 에 의존 하지 않 고 모든 데이터베이스 에 적 용 됩 니 다.
8. native
native 는 바 텀 데이터 베이스 에 따라 자동 으로 식별 자 를 생 성 하 는 지원 능력 에 따라 idenity,sequence,hilo 를 자동 으로 선택 합 니 다.
크로스 플랫폼 개발,여러 데이터베이스 에 적합
9.매 핑 자연 키
<id name="name" column="NAME" type="string">
<generator class="assigned"/>
</id>
.......
<version name="version" column="VERSION" unsaved-value="0"/>
assigned 는 프로그램 이 NAME 속성 할당 임 을 표시 합 니 다.유리 대상 이 든 지구 화 대상 이 든 NAME 띠 는 NULL 이 되 지 않 습 니 다.따라서 saveOrUpdate()방법 은 name 속성 이 null 인지 판단 하여 대상 상 태 를 확인 할 수 없습니다.이 경우
괜찮다
a.saveorUpdate 를 사용 하지 않 고 각각 save 또는 update()를 호출 합 니 다.
b.Hibernate 차단 기 를 사용 하여 Interceptor 구현 클래스 의 isUnsave()방법 에서 구분
10.맵 복합 자연 키
<composite-id>
<key-property name="name" column="NAME" type="string">
<key-property name="companyId" column="COMPANY_ID" type="long">
</composite-id>
<version name="version" column="VERSION" unsaved-value="0"/>
복합 자연 키 를 매 핑 할 때 세 션 의 load()방법 이 정상적으로 작 동 하기 위해 서 는 자바.io.Serializable 인 터 페 이 스 를 실현 하고 equals()와 hashcode()방법 을 다시 정의 해 야 합 니 다.equals 방법 은 같은 조건 으로 두 대상 의 name 속성 과 copanyId 속성 이 같 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JPA] 즉시로딩(EAGER)과 지연로딩(LAZY) (왜 LAZY 로딩을 써야할까?) (1)Proxy는 이 글의 주제인 즉시로딩과 지연로딩을 구현하는데 중요한 개념인데, 일단 원리는 미뤄두고 즉시로딩과 지연로딩이 무엇인지에 대해 먼저 알아보자. 눈 여겨 볼 곳은 'fetch = FetchType.EAGER...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.