Hibernate

User <-> Address:

Address是User的子对象。OneToOne is set on address field in User entity.

case 1. 没有设置CascadeType, only persist User: -> TransientException will be thrown, it said there are transient object.

case 2. CascadeType is not set, persist User, persist Address -> successful. sql: 1.intert user; 2.insert adress; 3.update user with address id. step 3 should not be executed. SEQUENCE of actions is important.

case 3. CasacdeType is not set. persist Address, persist User -> ok, sql: 1.insert Address; 2.insert User. it is ok.

case 4. CascadeType is PERSIST. persist User -> ok. sql:1.insert Address; 2.insert User.

case 5. CascadeType is PERSIST. persist User, Persist Address or Persist Address, Persist User -> ok. sql: 1.insert Address; 2.insert User.

你可能感兴趣的:(sql,Hibernate)