我正在使用JPA和Hibernate。对于我的应用程序中定义的实体,我使用注释,但有些实体作为第三方代码而没有任何映射。因此,我必须通过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映射,但似乎它不支持映射的超类。
答案 0 :(得分:1)
JPA映射仅支持其本机API。您需要使用hbm文件。
您必须使用以下属性迁移到hbm映射文件:
点击此处了解更多详情:http://docs.jboss.org/hibernate/orm/3.6/quickstart/en-US/html/hibernate-gsg-tutorial-basic.html