Если у вас возникла такая ситуация, и вы не хотите, чтобы Hibernate также обновлял данные в таблицах, вы можете заменить:
<class name="FooClass" table="FOO_TABLE"></class>
с
<class name="Foo" subselect="select * from FOO_TABLE">
<synchronize table="FOO_TABLE">
</class>
тогда инструмент экспорта схемы будет игнорировать его, как и любые записи. По крайней мере, так говорит документация.
subselect (необязательно): отображает неизменяемый и доступный только для чтения объект на
Подвыбор базы данных.
Я обнаружил это, посмотрев на функцию Table.isPhysicalTable
. Вы также можете изучить использование AbstractUnionTables, что является другим исключением.
Я случайно хочу неизменных объектов.
Мой вариант использования заключается в том, что я хочу загрузить несколько изменяемых форм неизменяемых выпусков некоторых управляемых объектов гибернации без риска случайного изменения экспорта схемы. Так что отбор довольно хорошо подходит для этого.
К сожалению, все ваши запросы будут засорены этим подвыбором, который база данных должна быть в состоянии оптимизировать, но люди по-разному доверяют оптимизации базы данных по уважительной причине.