【发布时间】:2017-04-19 15:21:49
【问题描述】:
由于SessionFactory#getClassMetadata(java.lang.Class) 已被弃用,我无法使用ClassMetadata。我想访问以下方法:
org.hibernate.metadata.ClassMetadata#getNaturalIdentifierPropertiesorg.hibernate.metadata.ClassMetadata#hasNaturalIdentifier
根据文档,我应该用 EntityManagerFactory.getMetamodel() 替换 getClassMetada。但是,元模型不包含获取 natural-id 的方法。我正在为 natural-id 使用 xml 映射,我想获取 natural-id 的属性名称来创建动态查询。
<class name="User">
<cache usage="read-write"/>
<id name="id">
<generator class="increment"/>
</id>
<natural-id>
<property name="name"/>
<property name="org"/>
</natural-id>
<property name="password"/>
</class>
- 有没有办法使用这些方法来获取自然 id 映射?
- 还有其他方法可以获取 ClassMetadata 实例吗?
- 是否可以获取
entityMetamodel的实例来替换ClassMetadata?
【问题讨论】:
标签: java metadata hibernate-5.x metamodel naturalid