持久化对象的状态
瞬时对象(Transient Objects):使用new操作符初始化的对象不是立刻就持久的。它们的状态是瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其他对象所引用),他们的状态将会丢失,并有垃圾回收机制回收。
持久化对象(Persist Objects):持久实例是任何具有数据库标识的实例。它由持久化管理器Session统一管理,持久实例是在事务中进行操作的——它们的状态在事务结束时同数据库进行同步。当事务提交时,通过执行SQL的INSERT、UPDATE和DELETE语句把内存中的状态同步到数据库中。
离线对象(Detached Objects):Session关闭之后,持久化对象就变为离线对象。离线表示这个对象不再与数据库保持同步,它们不再受Hibernate管理。
[img]/upload/attachment/81596/cf9d52bd-e6c7-386e-b32c-d9b8acb025e1.jpg[/img]
Transient状态对象的特征:
1 不处于session的缓存中,不和任何一个session实例有关联
2 在数据库中没有相应的记录
Persistent状态的对象特征:
1 位于session的缓存中,Persistent状态的对象总是和一个session实例关联
2 Persistent状态的对象和数据库中的记录有对应
3 Persistent状态的对象发生变化时会自动同步数据库
Detached状态的对象特征:
1 不处于session的缓存中,不和任何一个session实例有关联
2 Detached状态的对象和数据库表中的记录有对应
瞬时对象(Transient Objects):使用new操作符初始化的对象不是立刻就持久的。它们的状态是瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其他对象所引用),他们的状态将会丢失,并有垃圾回收机制回收。
持久化对象(Persist Objects):持久实例是任何具有数据库标识的实例。它由持久化管理器Session统一管理,持久实例是在事务中进行操作的——它们的状态在事务结束时同数据库进行同步。当事务提交时,通过执行SQL的INSERT、UPDATE和DELETE语句把内存中的状态同步到数据库中。
离线对象(Detached Objects):Session关闭之后,持久化对象就变为离线对象。离线表示这个对象不再与数据库保持同步,它们不再受Hibernate管理。
[img]/upload/attachment/81596/cf9d52bd-e6c7-386e-b32c-d9b8acb025e1.jpg[/img]
Transient状态对象的特征:
1 不处于session的缓存中,不和任何一个session实例有关联
2 在数据库中没有相应的记录
Persistent状态的对象特征:
1 位于session的缓存中,Persistent状态的对象总是和一个session实例关联
2 Persistent状态的对象和数据库中的记录有对应
3 Persistent状态的对象发生变化时会自动同步数据库
Detached状态的对象特征:
1 不处于session的缓存中,不和任何一个session实例有关联
2 Detached状态的对象和数据库表中的记录有对应