【问题标题】:Hibernate specific configuration in JPA XML mapping fileJPA XML 映射文件中的休眠特定配置
【发布时间】:2014-09-01 06:51:51
【问题描述】:

我在 Hibernate 中使用 JPA。对于在我的应用程序中定义的实体,我使用注释,但一些实体作为第三方代码提供,没有任何映射。因此我必须通过 XML 映射它们(至少我认为我必须这样做):

<entity-mappings ...>
    <access>FIELD</access>

    <mapped-superclass class="com.acme.common.model.Request">
        <attributes>
            <id name="id"/>
        </attributes>
    </mapped-superclass>
</entity-mappings>

由于这是 JPA 映射,它的效果很好,除了我必须使用 Hibernate 特定的自定义类型将 PostgreSQL 的 uuid 类型映射到 java.util.UUID 的情况。

使用注解,轻而易举:

@Entity
public class Partner {
    @Id
    @Type(type = "org.hibernate.type.PostgresUUIDType")
    private UUID id = IdGenerator.generate();
}

问题是我不知道如何通过 XML 做同样的事情。

我考虑过使用 Hibernate 的原生 XML 映射,但它似乎不支持映射的超类。

【问题讨论】:

标签: java spring hibernate postgresql jpa


【解决方案1】:

JPA 映射仅支持其原生 API。您需要使用 hbm 文件。

您必须迁移到具有以下属性的 hbm 映射文件:

查看这里了解更多详情:http://docs.jboss.org/hibernate/orm/3.6/quickstart/en-US/html/hibernate-gsg-tutorial-basic.html

【讨论】:

  • 这是否意味着我不能像使用注释一样使用 XML 来两全其美?我的意思是,我可以将 JPA 和 Hibernate 注释结合起来。通过切换到 Hibernate XML,是否意味着我将不得不放弃 JPA 功能,如映射超类?
  • 您可以拥有 JPA 功能,但您只需要使用 Hibernate 映射。我从未听说过允许 hbm 文件导入 orm(仅限 jpa)文件的功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 2017-11-07
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多