Веб-приложение использует HTTP-заголовок, чтобы определить, какой источник данных следует использовать.
Оба источника данных имеют одинаковые таблицы/последовательности.
Мы столкнулись с исключением ConstraintViolationException тот Столбец ID при вставке в одну из таблиц.
Конфигурация объекта Hibernate выглядит следующим образом:
Код: Выделить всё
@Id
@SequenceGenerator(name = "SEQ_ENTITY_GEN", sequenceName = "SEQ_ENTITY", allocationSize = 100)
@GeneratedValue(generator = "SEQ_ENTITY_GEN")
@Column(name = "ID")
private Long id;
< /code>
При анализе проблемы это похоже на то, что Hibernate использовал некоторые значения кэшированных последовательности из источника данных A, при вставке некоторых записей в источник данных b. < /p>
< P> Вот что я думаю < /em>, произошло:
До вставки в источник данных B, вставка произошла в источнике данных A.
Hibernate не использовал все извлеченные идентификаторы и оставались в кэше. Источник данных b. < /p>
Это предположение правильно? Являются ли последовательности кэшировать «глобально» даже при использовании реализации AbstractingDatasource Подробнее здесь: https://stackoverflow.com/questions/793 ... datasource
Мобильная версия