Как переназначить сущность JPA или отложить сопоставление на более позднюю точку - PullRequest
2 голосов
/ 11 февраля 2010

У нас есть общие модули (для конфигурации, безопасности, уведомлений и т. Д.), Которые определяют сущности и логику для модуля как повторно используемый JAR. Единственная навязанная зависимость - это имя таблицы, с которой сопоставляются сущности JPA (мы использовали аннотации JPA, которые были возможны, аннотации Hibernate, в которых JPA не определяет ни одной)

Есть ли способ переназначить сущность JPA в другую таблицу (в идеале приложения должны изменить префикс имени таблицы в соответствии с именем префикса таблицы приложения)? Мы не можем использовать аннотацию MappedSuperClass, потому что HQL использует имя объекта, а наши DAO генерируются на объекте.

1 Ответ

1 голос
/ 11 февраля 2010

Каждое приложение может предоставить свой собственный файл orm.xml с соответствующим отображением таблицы и использовать аннотации JPA для всего прочего.

orm.xml:

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
  version="1.0">

  <entity class="com.mydomain.Customer">
    <table name="PROD1_CUSTOMER"/>
  </entity>

</entity-mappings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...