Java 使用JPA持久化第三方对象
在我当前的项目中,我使用的是一个没有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实现都应该提供使用XML和注释的示例。看见 有关用于XML结构的DataNucleus文档,请参阅特定关系类型以获取不同功能的示例。检查并查看。简言之:
META-INF/orm.xml
.xsd
<?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>