2012-04-26 2 views
0

У нас есть проблема, из-за которой в нашей базе данных TimesTen не существует полей с нулевым значением в нашей базе данных Oracle. Таким образом, часть GUI нашего приложения записывается в Oracle, а затем наш механизм приложений читает TimesTen. Проблема в том, что некоторые поля не имеют значения NULL в Oracle и поэтому нам нужны они в наших файлах сопоставления. Однако, когда мы читаем соответствующий объект из TimesTen, получаем ошибку, говорящую, что столбец не существует. Мы не можем добавить эти столбцы в TimesTen, поскольку они не используются нашим механизмом приложений, а использование производительности/памяти является ключевым. Я попытался сделать эти свойства в вопросе «ленивыми» в файлах сопоставления, но это, похоже, не сработало. Мы не можем указывать значения по умолчанию в Oracle для этих полей с недействительными значениями, поэтому это кажется сложным для решения!Спящий режим: варианты использования одного и того же файла сопоставления в Oracle и TimesTen

Какие еще варианты у нас есть с точки спящего режима?

Благодаря

ответ

1

Насколько я знаю, Hibernate всегда делает, что все столбцы, которые упоминаются в файле отображения существуют в базе данных, тоже. Поэтому вы не можете сделать это в одном файле сопоставления.

Используйте два файла сопоставления. И затем вы также используете два hibernate.cfg.xml, один для части GUI, один для механизма приложения. Разница в этих двух файлах конфигурации заключается в том, что они ссылаются на свои свойства сопоставления на разные файлы сопоставления. Когда вы указываете имена этих файлов конфигурации в качестве параметра метода configure() в части GUI и в движке приложения, остальная часть кода Java может быть точно такой же для ваших двух приложений.

Если два разных файла сопоставления (для Oracle & TimesTen) для одной таблицы должны содержать много одного и того же кода xml, и вы не хотите иметь этот xml-код дважды в своих файлах, тогда вы можете использовать механизм xml включая файлы (с [<!ENTITY namexxx SYSTEM "filename">] и &namexxx).

+0

Пока еще не пробовал, но опубликует, когда решит эту проблему. На данный момент это может быть наше единственное решение. благодаря – DJ180

Смежные вопросы