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

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

Все, что я хочу, это сохранить всю конфигурацию с помощью аннотаций и прочитать таблицу с помощью 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.

Ответ 1

Hibernate docs (последний)

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

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

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