标签:
cascade属性:
默认为none,代表不级联。
级联是指操作主对象时,对关联的对象也做相同的操作。
可设为:delete, save-update, all, none ...--
一般是对象只归归另一个管时用级联(一对多,一对一);多对1,多对多不级联
对象的状态:
// save():把临时状态变为持久化状态(交给Sessioin管理)
// 会生成:insert into ...
// update():把游离状态变为持久化状态
// 会生成:update ...
// 在更新时,对象不存在就报错
// saveOrUpdate():把临时或游离状态转为持久化状态
// 会生成:insert into 或 update ...
// 在更新时,对象不存在就报错
// 本方法是根据id判断对象是什么状态的:如果id为原始值(对象的是null,原始类型数字是0)就是临时状态,如果不是原始值就是游离状态。
// delete():把持久化或游离转为删除状态
// 会生成:delete ...
// 如果删除的对象不存在,就会抛异常
游离和持久化都是在数据库中有记录的,临时是刚New出来的,在session的管理中,数据库没记录;游离是session关闭之后从session容器关闭后被赶出来的对象状态
Session中的方法。
对象的状态:
Session中 数库中
-----------------------
临时 无 无
持久化 有 最终会有
游离 无 有
删除 调用了delete()方法后
1,操作实体对象的
save()
update()
saveOrUpdate()
delete()
2,操作缓存的
clear() 清空Session缓存,不会执行sql语句。
evict()
flush() 马上执行sql语句,不会清楚Session缓存。
3,查询实体对象的
get()
load()
createQuery()
createCriteria()
Hibernate - cascade-and -session_state
标签:
原文地址:http://www.cnblogs.com/daxiong225/p/4689918.html