Hibernate映射文件和注释之间的区别

Lol*_*lly 6 java hibernate

今天我尝试使用Hibernate作为ORM创建一个应用程序.因此,虽然创造我有一个疑问.使用的最佳实践是什么,Hibernate映射文件(.hbm文件)或注释?它的优点和缺点是什么?请帮助我理解.

Boz*_*zho 12

  • 没有功能差异.你可以用两种方法(几乎)做同样的事情
  • 在Java注释之前使用了xml文件(在1.5中添加),因此它们可以被认为是过时的映射方式
  • 通常优选使用JPA注释而不是特定于hibernate的注释; 如果使用xml - 有一个JPA xml格式,它应该优先于hibernate本机格式

  • XML文件不会过时.什么是新的不一定更好. (4认同)
  • “可以考虑”。我没有坚持他们是。我还注意到没有功能上的区别。但是在许多情况下,最好使用注释。 (2认同)

Joh*_*nna 8

问题是你的口味是什么 - 两种方式都可以(大多数情况下)相同,区别在于如何写.

使用注释,您可以将Java成员变量/ getter和映射直接放在一起.

Xml映射文件可以更好地概述表及其映射.

在我看来,xml映射文件有助于更好地设计数据库和应用程序.Annonations倾向于强制方向Java类 - >映射 - >数据库表,这是错误的方向(数据库总是应该首先设计 - 以后更改数据库表需要付出很多努力 - 大多数性能泄漏都是在糟糕的数据库设计中 - 可以随时轻松更改Java类.

如果xml文件有一个功能优势:如果你有不同的数据库有结构差异,例如一个Oracle数据库和一个MySQL数据库,可能是表名和数据类型的一些差异,然后将你的应用程序从一个数据库移植到另一个数据库你只需要编写一些新的映射文件.您无需更改单行Java代码.注释无法做到这一点.

我更喜欢使用xml映射文件.这是我的口味.