Насколько я знаю, есть два способа настройки JPA/Hibernate: конфигурация на основеКонфигурация Java для Hibernate/JPA?
- XML через что-то вроде hibernate.cfg.xml. Мне не нравится его подход, потому что, ну, XML ...
- Через аннотации в объекте сущности. Гораздо лучше, чем XML-конфиг, но он связывает мои сущности с JPA.
Поскольку я в настоящее время изучаю архитектуру, в которой модель домена ничего не знает о базе данных (архитектура «Onion»), я ищу способ указать сопоставления без изменения моих объектов.
Конечно, я может создавать отдельные классы сопоставления, например. если у меня есть объект домена Customer, создайте JPA-аннотированную CustomerEntity и позвольте репозиторию переводить из одного в другой. Но этот подход не совсем корректен, потому что Customer и CustomerEntity будут по существу одинаковыми.
Так что, похоже, мне нужно прибегнуть к конфигурации XML Hibernate, но, как упоминалось ранее, мне не нравится этот подход. Весна имеет приятный способ настройки: конфигурация на основе Java. Мне было интересно, есть ли что-то подобное для конфигурации Hibernate/JPA, а если нет, почему бы и нет?
Мои извинения, если ни один из выше не имеет смысла, но любая помощь приветствуется, даже если он не отвечает на мой вопрос :-)
Являются ли аннотации эффективными Java? –
Да, но это не то, что я имел в виду. Моя цель - отделить отображение JPA от объектов домена. При использовании аннотаций это не так. –
Да, но я не знаю, как бы вы описали сущности проще, чем с помощью аннотаций.Если вы их отделите, вы просто сделаете код, который трудно читать, использовать и поддерживать. –