如何从 JPA 注释的实体类生成 JPA 映射文件?
Posted
技术标签:
【中文标题】如何从 JPA 注释的实体类生成 JPA 映射文件?【英文标题】:How to generate JPA mapping file from the JPA annotated entity classes? 【发布时间】:2009-12-23 15:35:24 【问题描述】:我正在使用 JPA 规范的 openjpa 运行时。 在开发时,我使用注释来配置 jpa 实体。 在集成、预生产和生产环境中,我使用 orm 映射文件来配置实体。请推荐一个可以从 jpa 注释生成映射文件的工具,以便可以针对不同的环境手动编辑这些映射文件。 如果已经有开源的maven-plugin;会很棒。
【问题讨论】:
【参考方案1】:我不太了解 OpenJPA,所以可能有更好的方法来做到这一点,但一种选择是首先使用 Schema Tool 从带注释的实体生成 XML 模式文件,然后orm.xml
文件来自 schema.xml
,使用 Reverse Mapping Tool。其实这个过程在this thread有讨论。
我检查了OpenJPA Maven Plugin,但它似乎不支持反向映射部分(它只有一个openjpa:schema 目标,允许创建一个包含架构映射 XML 的文件,第一个必需的操作,但第二部分没有)。因此,扩展插件以添加缺少的 openjpa:reverse-mapping 目标需要一些开发,但这应该不是一项艰巨的任务。
不过还有另一种选择。 OpenJPA 为这两种操作提供了以下 Ant 任务:
org.apache.openjpa.jdbc.ant.ReverseMappingToolTask
org.apache.openjpa.jdbc.ant.SchemaToolTask
所以应该可以使用 Maven AntRun Plugin 从 Maven 调用它们。有关如何使用它们的更多详细信息,请查看文档。
【讨论】:
谢谢帕斯卡,我会试试这个建议的解决方案。以上是关于如何从 JPA 注释的实体类生成 JPA 映射文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JPA/Hibernate 注释将 MySQL char(n) 列映射到实例变量?