2012-04-17 151 views
8

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

这是我的理解,Hibernate映射文件提供了一些功能,你不会找到(至少,不是确切的等效)与注释。但是,我仍然觉得,现在使用Hibernate的项目宁愿使用基于注释的而不是Hibernate映射文件。

有没有人选择将文件映射到注释上,如果是这样,是什么原因?

回答

12

我看到使用@Annotations什么优点:

  • 编译安全
  • 根据@Entity您可以轻松地从任何实体
  • 与packagesToScan Spring的功能的entites很容易区分实体可扫描
  • 将包裹从包裹移动到包裹或重命名很容易

使用XML我看到什么优点:

  • 它没有窝的Java类与不必要的供应商特定的 注释(想象一下使用JPA,JAXB,SOLRJ Java模型类 注释)
  • 配置一个地方
  • 更容易保持整体

我们使用注释,但保留XML作为一种选择。

4

请随时与注释任何一天。真正过度使用和在类中保存元数据的XML配置是一个很好的选择。

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

甚至可以在传统项目中使用注释来创建新的类,该项目具有基于XML的映射,如告知here