由于SessionFactory#getClassMetadata(java.lang.Class)
已弃用,我无法使用ClassMetadata。我想访问以下方法:
org.hibernate.metadata.ClassMetadata#getNaturalIdentifierProperties
org.hibernate.metadata.ClassMetadata#hasNaturalIdentifier
根据文档,我应该用 EntityManagerFactory.getMetamodel() 替换 getClassMetada。但是,元模型不包含获取 natural-id 的方法。我正在使用自然 ID 的 xml 映射,我想获取自然 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?