小编jmg*_*esc的帖子

Hibernate 5.2 从元模型中获取自然 id 属性

由于SessionFactory#getClassMetadata(java.lang.Class)已弃用,我无法使用ClassMetadata。我想访问以下方法:

  • org.hibernate.metadata.ClassMetadata#getNaturalIdentifierProperties
  • org.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)
  • 有没有办法使用这些方法来获得自然的 id 映射?
  • 还有另一种方法来获取 ClassMetadata 实例吗?
  • 是否有可能获得一个实例entityMetamodel来替换 ClassMetadata?

java metadata metamodel naturalid hibernate-5.x

4
推荐指数
1
解决办法
3266
查看次数

标签 统计

hibernate-5.x ×1

java ×1

metadata ×1

metamodel ×1

naturalid ×1