Room room1 = new Room(); 
room1.setAddress("NTU-M8-419"); 
Room room2 = new Room(); 
room2.setAddress("NTU-G3-302"); 
        
User user1 = new User(); 
user1.setName("bush"); 
user1.setRoom(room1); 
        
User user2 = new User(); 
user2.setName("caterpillar"); 
user2.setRoom(room1); 
        
User user3 = new User(); 
user3.setName("momor"); 
user3.setRoom(room2); 
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
// 储存Room实例
session.save(room1); 
session.save(room2);
// 储存User实例
session.save(user1);
session.save(user2);
session.save(user3);
tx.commit();
session.close();
    使用cascade自动持久化时,会先检查被关联对象的id属性,未被持久化的对象是否储存是藉由id属性的unsaved-value决定,预设是
    null,也就是没有参考至任何值时储存对象,如果您使用int、long这样的原生型态(Primitive
    type)时,由于数据成员的初始会被设定为0,所以您必须自行指定默认值,例如(如果id的数据型态是long的话):.... <id name="id" column="id" unsaved-value="0"> <generator class="native"/> </id> ....