Hibernate 맵

2589 단어 Hibernate
1.자연 키,프 록 시 키
프 록 시 키,업무 적 의 미 를 갖 추 지 않 은 필드,
가능 한 한 자연 키 를 사용 하 는 것 을 피해 야 한다.
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 인지 판단 하여 대상 상 태 를 확인 할 수 없습니다.이 경우원 의 unsave-value 속성 을 설정 할 수 있 습 니 다.속성 이 0 이면 체인 대상 을 표시 합 니 다.그렇지 않 으 면 유리 대상(데이터베이스 에서 읽 은 대상)
괜찮다
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 속성 이 같 습 니 다.

좋은 웹페이지 즐겨찾기