Сохранение третьей стороны возражает с JPA

В моем текущем проекте я пользуюсь сторонней библиотекой, которая не имеет никаких аннотаций JPA.

Как я могу сохранить объекты из той библиотеки с помощью JPA и внешних отображений?

6
задан Mogsdad 15 September 2015 в 15:55
поделиться

3 ответа

Проверьте это и это. Вкратце:

  1. Создайте META-INF/orm.xml
  2. Следуйте (читайте) .xsd

Вам не нужно вручную сопоставлять каждый столбец - требуются только некоторые специфические характеристики (т.е. коллекции и id). Предполагается, что все поля являются столбцами (если класс отображен). Если коллекций нет, достаточно чего-то вроде этого:

<?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">

    <description>External entities from library X</description>
    <package>com.external.library</package>
    <entity class="SomeClassName">
      <id>..</id>
    </entity>
    <entity class="AnotherClassName">
      <id>..</id>
    </entity>
</entity-mapping>

Обратите внимание, что при указании вам не нужны полные имена.

В случае, если вам нужен файл, названный иначе, чем orm.xml, в вашем persistence.xml укажите его через:

<mapping-file>customMappingFile.xml</mapping-file>
1
ответ дан 17 December 2019 в 18:15
поделиться

Обратитесь к документации вашей реализации JPA; любая серьезная реализация JPA должна предоставлять примеры использования XML, а также аннотаций. См. http://www.datanucleus.org/products/accessplatform_2_0/jpa/metadata_xml.html для документации DataNucleus по структуре XML, а затем обратитесь к конкретным типам отношений для примеров различных возможностей.

1
ответ дан 17 December 2019 в 18:15
поделиться

Как уже указывалось, вы можете использовать файл сопоставления JPA вместо аннотаций для сопоставления, ну, не аннотированных объектов (например, классов из сторонняя библиотека). Для начала следуйте любому руководству JPA, основанному на файлах сопоставления.

Что касается автоматизации, я не думаю, что вы можете автоматизировать создание orm.xml из объектной модели (в отличие от физической модели, объектная модель не содержит достаточно информации, например какое поле является PK или, для двунаправленной ассоциации, какая сторона является владельцем и т. д., следовательно, необходимы метаданные). Но большинство IDE поддерживают это, например Затмение .

1
ответ дан 17 December 2019 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: