使用JPA保留第三方对象


问题内容

在我当前的项目中,我正在使用没有JPA批注的第三方库。

如何使用JPA和外部映射持久化该库中的对象?


问题答案:

检查这个这个。简而言之:

  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>

请注意,指定时<package>不需要完全限定的名称。

如果您想要的文件名称不同于orm.xmlpersistence.xml则可以通过以下方式指定该文件:

<mapping-file>customMappingFile.xml</mapping-file>