Я пытаюсь написать несколько баз данных, используя спящий режим. У меня есть инкапсулированные сессии записи и чтения/записи в одном объекте сеанса. Однако, когда я иду на сохранение, я получаю много ошибок, которые объекты уже связаны с другим сеансом: "Незаконная попытка связать коллекцию с двумя открытыми сеансами"
Вот мой код:
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);
}
}
Я попытался вырезать объект и промыть; однако это вызывает проблемы с "Row был обновлен или удален другой транзакцией"... хотя обе сессии указывают на разные базы данных.
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);
}
}
В дополнение к вышесказанному, я также попытался использовать функции репликации спящего режима. Это также было безуспешным без ошибок.
Кто-нибудь успешно сохранил объект в двух базах данных, имеющих одну и ту же схему?