Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JPA持久化第三方对象_Java_Jpa_Persistence - Fatal编程技术网

Java 使用JPA持久化第三方对象

Java 使用JPA持久化第三方对象,java,jpa,persistence,Java,Jpa,Persistence,在我当前的项目中,我使用的是一个没有JPA注释的第三方库 如何使用JPA和外部映射持久化该库中的对象?请参阅JPA实现的文档;任何严肃的JPA实现都应该提供使用XML和注释的示例。看见 有关用于XML结构的DataNucleus文档,请参阅特定关系类型以获取不同功能的示例。检查并查看。简言之: 创建META-INF/orm.xml 遵循(阅读).xsd 您不必手动映射每个列-只需要一些细节(即集合和id)。假设所有字段都是列(如果类已映射)。如果没有集合,这样就足够了: <?xml ver

在我当前的项目中,我使用的是一个没有JPA注释的第三方库


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

请参阅JPA实现的文档;任何严肃的JPA实现都应该提供使用XML和注释的示例。看见 有关用于XML结构的DataNucleus文档,请参阅特定关系类型以获取不同功能的示例。

检查并查看。简言之:

  • 创建
    META-INF/orm.xml
  • 遵循(阅读)
    .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>
    

    正如所指出的,您可以使用JPA而不是注释来映射非注释实体(例如,来自第三方库的类)。按照任何基于映射文件的JPA教程开始


    关于自动化,我认为您无法从对象模型自动生成
    orm.xml
    (与物理模型相反,对象模型没有包含足够的信息,例如哪个字段是PK,或者对于双向关联,哪一方是所有者,等等,因此需要元数据)。但是大多数IDE都支持这一点,例如

    谢谢。我目前正在使用hibernate,并将查看他们的文档。我只是想,既然JPA是一种标准的持久性机制,那么应该有一些与提供者无关的教程。DN文档通常与提供者无关,并且总是在某些东西是扩展的地方添加“DataNucleus扩展”。谢谢你的提示。您是否知道,如果有某种用于这些映射的生成器,它可以分析类文件并输出映射。手动操作是可能的,但对于一个相当大的领域来说,这听起来像是不必要的手动操作。你可以说我懒惰,但我喜欢尽可能地自动化;-)隐马尔可夫模型。。。PK是如何被“发现”的?我认为您需要在某个地方定义
    。@Pascal Thivent是的,谢谢。我目前正在将它与
    一起使用,因此我错过了它。更新。
    <mapping-file>customMappingFile.xml</mapping-file>