2012-04-17 118 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