【问题标题】:In a project with mixed XML and annotation hibernate entities, which is scanned first?在具有混合 XML 和注释休眠实体的项目中,首先扫描哪个?
【发布时间】:2021-02-22 04:22:14
【问题描述】:

我们正在开发一个使用 hibernate 4.2.21 的项目,该项目混合了基于 XML 的实体和基于注释的实体。问题是: 首先扫描哪些实体? 换一种说法, 如果 EntityA 是基于 XML 的实体,而 EntityB 是基于注释的实体。 EntityA 可以有 EntityB 类型的属性吗?

【问题讨论】:

  • 我不认为这很重要; Hibernate 正在构建一个内存模型,然后在加载后执行一致性检查。

标签: java hibernate


【解决方案1】:

您可以混合通过注释映射的实体和通过 XML 映射的实体。

来自 Hibernate 文档(重点是我的):

您可以混合使用带注释的持久类和经典的 hbm.cfg.xml 具有相同 SessionFactory 的声明。但是,您不能声明 一个类多次(无论是注释还是通过 hbm.xml)。 不能在实体中混合配置策略(hbm 与注释) 层次结构。

【讨论】:

  • 感谢您的声明,但哪些实体首先加载基于 XML 或基于注释的?
  • 这个好像没有记录,请问你为什么想知道?
  • 其实hibernate.mapping.precedence可以用在class被注解和XML映射的情况下,所以也可能会影响扫描顺序。
  • 我正在做一个混合了实体映射的项目。基于注释的实体可以具有基于 XML 的实体类型的属性。但是在某些时候,我需要一个基于 XML 的实体来拥有基于注释类型的属性,但它不起作用。我想知道它是否不起作用,因为它不应该起作用,或者我做错了什么,所以我需要弄清楚。
  • 它应该可以工作,也许可以尝试用你面临的问题来编辑你的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-15
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多