休眠将对象保存到多个会话
2022-09-04 03:41:25
我正在尝试使用休眠写入多个数据库。我已将写入和读/写会话封装在单个会话对象中。但是,当我去保存时,我收到了很多错误,即对象已经与另一个会话相关联:“非法尝试将集合与两个打开的会话相关联”
这是我的代码:
public class MultiSessionObject implements Session {
private Session writeOnlySession;
private Session readWriteSession;
@Override
public void saveOrUpdate(Object arg0) throws HibernateException {
readWriteSession.saveOrUpdate(arg0);
writeOnlySession.saveOrUpdate(arg0);
}
}
我尝试过驱逐物体并冲洗;但是,这会导致“行被另一个事务更新或删除”的问题...即使两个会话都指向不同的数据库。
public class MultiSessionObject implements Session {
private Session writeOnlySession;
private Session readWriteSession;
@Override
public void saveOrUpdate(Object arg0) throws HibernateException {
readWriteSession.saveOrUpdate(arg0);
readWriteSession.flush();
readWriteSession.evict(arg0);
writeOnlySession.saveOrUpdate(arg0);
writeOnlySession.flush();
writeOnlySession.evict(arg0);
}
}
除了上述之外,我还尝试使用休眠的复制功能。这也是不成功的,没有错误。
是否有人成功地将对象保存到具有相同架构的两个数据库中?