В Hibernate: возможно ли смешивать аннотации и конфигурацию XML для объекта?

Итак, можно ли смешивать обе конфигурации вместо использования только одной из них?

Все, что я хочу, это сохранить всю конфигурацию с помощью аннотаций и прочитать таблицу с помощью XML.

Является ли это возможным?

Большое спасибо.

Изменить: каким будет файл hbm.xml? У меня есть этот:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="MyData" table="MyTable" >
    </class>
</hibernate-mapping>

И не компилируйте dtd.


person ganzux    schedule 27.12.2011    source источник
comment
Этот пост говорит о том, что вы можете это сделать. Ты пробовал? forum.hibernate.org/   -  person JB Nizet    schedule 27.12.2011
comment
Да, теперь я знаю, что это возможно, но я не знаю, как заполнить мой файл конфигурации xml только именем таблицы.   -  person ganzux    schedule 27.12.2011


Ответы (1)


Документы Hibernate (последние)

Обратите внимание, что вы можете сочетать устаревшее использование hbm.xml и подход с аннотациями. Элемент ресурса может быть либо файлом hbm, либо XML-дескриптором развертывания EJB3. Различие прозрачно для вашего процесса настройки.

Вы можете смешивать аннотированные постоянные классы и классические объявления hbm.cfg.xml с одной и той же SessionFactory. Однако вы не можете объявить класс несколько раз (будь то аннотированный или через hbm.xml). Вы также не можете смешивать стратегии конфигурации (hbm и аннотации) в иерархии сущностей.

Чтобы упростить процесс миграции с файлов hbm на аннотации, механизм конфигурации обнаруживает дублирование отображения между аннотациями и файлами hbm. Затем файлы HBM имеют приоритет над аннотированными метаданными на основе класса к классу. Вы можете изменить приоритет, используя свойство hibernate.mapping.precedence. Значение по умолчанию — hbm, class, и изменение его на class, hbm отдаст приоритет аннотированным классам над файлами hbm при возникновении конфликта.

person viktor    schedule 27.12.2011