Hibernate:映射文件或注释?

时间:2012-04-17 12:47:12

标签: java hibernate

几天前,当我开始使用Hibernate时,我只是想知道:假设你是从头开始一个项目。您是否会使用基于注释的映射或Hibernate映射文件来生成数据库模式。

据我所知,Hibernate映射文件提供了一些您没有找到的功能(至少不是完全等效的)带有注释。但是,我仍然觉得,现在使用Hibernate的项目宁愿选择基于注释而不是Hibernate映射文件。

是否有人选择过注释的映射文件,如果是,那么出于什么原因?

2 个答案:

答案 0 :(得分:12)

我在使用@Annotations

中看到了哪些优势
  • 编译器安全
  • 基于@Entity,您可以轻松区分实体与非实体
  • with packagesToScan Spring的功能可以轻松扫描
  • 将包从包转移到包或类重命名很容易

我在使用XML 中看到了哪些优势:

  • 它不会使用不必要的特定于供应商的java类 注释(想象一下带有JPA,JAXB,SOLRJ的java模型类 注解)
  • 在一个地方配置
  • 整体上更容易维护

我们使用注释,但保留XML作为选项。

答案 1 :(得分:4)

随时使用注释。真正过度使用并在类中保存元数据的XML配置是一个很好的可行选择。

注释将帮助您更好地映射关系,并且它将使您与JPA标准保持一致,因为hibernate主要使用JPA注释。使用注释没有真正的问题,也没有太多的权衡。它比基于XML的配置具有更好的优势。使用注释时可能很少有黑客丢失,但它们会出现。

甚至可以对遗留项目中的新类使用注释,该项目具有基于XML的映射,如here所述。