(day 2) hibernate 지식 훈련 (one - to - many)
1. one set
<set name="acts" cascade="all" inverse="true"><!-- one (user) :many (Account) -->
<key column="fid"></key>
<one-to-many class="Account"/><!-- Account -->
</set>
:inverse="true" , 。
2. many
<many-to-one name="user" column="fid" cascade="save"><!-- -->
</many-to-one>
.
1. -->PO (OOAD -->PO )
Transient : po Session ,
Persistent : po Session ,
Detached / :po Session ,
: Session , Session
: , , , Session , Session.save() 。
: (new) , , Session.delete(), 。
: , , Session , Session , , .
--> ? --> -- -->
( ) ( ) -- -->Session ? -->
2. : _|_-->close(): Session/clear() /evict()
save() / saveOrUpdate() close()/clear()/evict()
Transient--------------------->Persistent----------------------->Detached
( )<---------------------( )<----------------------- ( )
delete() update()/saveOrUpdate()/lock()
. cascade
cascade .
1. none: , , none。
2. save-update: ( ) , ( ),one2many ;
3. delete: ( )。
4. all: ( )。
5. all-delete-orphan: , null , delete id null, , delete-orphan , 。( )
cascade="save-update,delete-orphan"
. (Batch update)
1. session.flush() session.clear()
2. batch-size: set , , , , , , (lazy="true" lazy="false")。
: lazy="true" , , , , 。 LazyInitializationException , , , Session , Session, 。
. Hibernate (ACID,atomicity consistency isolation durability) , 。
Transaction tran=session.beginTranaction();//....
tran.commit();
tran.rollback();
, 。
、hibernate
hibernate JDBC 。
hibernate.cfg.xml
<property name="hibernate.connection.isolation">4</property>
1, (Read uncommitted isolation)
2, (Read committed isolation)
4, (Repeatable read isolation)
8, (Serializable isolation)
、hibernate ( , )
1. : , , , 。
LockMode.UPGRADE, , get() 。
LockMode.NONE
LockMode.READ (JDBC for update)
LockMode.WRITE ,
:tran = s.beginTransaction();
user = (User)s.get(User.class , userid , LockMode.UPGRADE);
user.setName("new name");
tran.commit();
Session.lock() Query.setLockMode() Criteria.setLockMode()
2. : 。
: versionNo
if(read_versionNo=versionNo) write versionNo++ else do it again
< version name = "version" / > 는 < id > 이후 persist 를 따라 가 야 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.