hibernate之复制对象
当你需要从一个数据库获取对象并把它们保存在另一个数据库中的时候,这称作对象的复制。
复制采用加载在Session中的脱管对象,并在另一个Session中使它们变成持久化。这些Session通常在已经通过映射给同一个持久化类配置的两个不同的SessionFactory中打开。如例:
注意,ReplicationMode控制复制过程的细节:
- ReplicationMode.IGNORE---当现有的数据库行包含与目标数据库中相同的标识符时忽略对象。
- ReplicationMode.OVERWRITE---覆盖任何包含与目标数据库中相同标识符的现有数据库行。
- ReplicationMode.EXCEPTION---如果现有的数据库行包含与目标数据库中相同的标识符时抛异常。
- ReplicationMode.LATEST_VERSION---如果目标数据库的版本比对象的版本更早,则覆盖它里面的行,否则忽略对象。你需要启用hibernate乐观并发性控制。
当你任由数据进入不同的数据库时,当你在产品升级期间升级系统配置信息时,或者当你需要回滚在非ACID事务期间所做的改变时,都可能需要复制.