1.对象状态: 瞬时(transient):数据库中没有数据与之对应,超过作用域会被jvm垃圾回收器回收,一般是new出秋且与session没有关联的对象 持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交;持久对象 状态发生改变时,在事务提交时会影响到数据库(hibernate能检测到)。 脱管(detached):数据库中有数据与之对应,但当前没有session与其之关联【session已关闭】,脱管对象发生改变,hibernate不能检测到。这种装态,宜用update()方法。 当调用saveOrUpdate()方法后,对象就变成持久装态。这个方法的意义是,hibernate会根据id的值来确定是调用save()【id无值时.整型就看是否为0,string就看是否为null】还是调用update()【id有值时】, 当调用merge()方法后,对象就变成脱管状态 |
|
来自: 英昌知识汇聚馆 > 《hibernate》