由于SessionFactory#getClassMetadata(java.lang.Class)已弃用,我无法使用ClassMetadata。我想访问以下方法:
org.hibernate.metadata.ClassMetadata#getNaturalIdentifierPropertiesorg.hibernate.metadata.ClassMetadata#hasNaturalIdentifier根据文档,我应该用 EntityManagerFactory.getMetamodel() 替换 getClassMetada。但是,元模型不包含获取自然 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>
Run Code Online (Sandbox Code Playgroud)
entityMetamodel来替换 ClassMetadata?