Java Hibernate映射文件和注释之间的差异
今天我尝试使用Hibernate作为ORM创建一个应用程序。所以在创作的时候我有一个疑问。使用Hibernate映射文件(.hbm文件)或注释的最佳实践是什么?它的优点和缺点是什么?请帮助我理解。Java Hibernate映射文件和注释之间的差异,java,hibernate,Java,Hibernate,今天我尝试使用Hibernate作为ORM创建一个应用程序。所以在创作的时候我有一个疑问。使用Hibernate映射文件(.hbm文件)或注释的最佳实践是什么?它的优点和缺点是什么?请帮助我理解。 没有功能上的区别。你可以用这两种方法做(几乎)相同的事情 xml文件是在Java有注释(在1.5中添加)之前使用的,因此可以认为它们是一种过时的映射方式 通常首选使用JPA注释,而不是特定于hibernate的注释;如果使用xml,有一种JPA xml格式,应该优先于hibernate原生格式 注释基
- 没有功能上的区别。你可以用这两种方法做(几乎)相同的事情
- xml文件是在Java有注释(在1.5中添加)之前使用的,因此可以认为它们是一种过时的映射方式
- 通常首选使用JPA注释,而不是特定于hibernate的注释;如果使用xml,有一种JPA xml格式,应该优先于hibernate原生格式
http://en.wikipedia.org/wiki/Convention_over_configuration
而xml文件只是配置文件
关于使用注释和使用配置,有很多讨论
在我看来,我更喜欢注释,因为它更易于编写和维护。使用XML方法的一个很好的用例是,如果您正在持久化由另一个实用程序生成的对象,因此无法对其进行注释
除此之外,我会使用注释,因为它倾向于使用更干净的实现,并且您不太可能通过拼写错误的属性名引入bug。问题是您的喜好是什么-两种方法可以(大部分)做相同的事情,不同的是如何编写 使用注释,您可以将Java成员变量/getter和映射直接放在一起 Xml映射文件可以更好地概述表及其映射 在我看来,xml映射文件有助于更好地设计数据库和应用程序。注释倾向于强制Java类->映射->数据库表的方向,这是错误的方向(数据库总是应该先设计-以后更改数据库表是一项很大的工作-大多数性能泄漏都发生在糟糕的数据库设计中-Java类很容易随时更改) xml文件的一个功能优势是:如果您有结构不同的不同数据库,例如一个Oracle数据库和一个MySQL数据库,可能在表名和数据类型上存在一些差异,那么为了将应用程序从一个数据库移植到另一个数据库,您只需要编写一些新的映射文件。您不需要更改一行Java代码。这在注释中是不可能的 我更喜欢使用xml映射文件。这就是我的品味。这是“教程要点”中的说法 “如果要使应用程序可移植到其他EJB3兼容的ORM应用程序中,则必须使用注释来表示映射信息,但如果仍希望更大的灵活性,则应使用基于XML的映射。”
对我来说,我更喜欢XML配置文件,而不是注释。因为这样我们就可以用最少的代码更改进行更改。注释是用java语言开发的,与XML相比,java developer易于学习。实时表名和列名中还有一点是99%固定的,因此也不需要更改java代码 但是,如果您想经常更改表名和列名,您将使用XML
最后,cfg.xml文件是管理数据的,因为数据库可能会更改 XML文件没有过时。更新的不一定更好,“可以考虑”。我没有坚持他们是。我还注意到没有功能上的差异。但在许多情况下,注释是更可取的。我不得不尊重地不同意注释是基于约定而非配置的原则。注释与约定无关。这只是从XML进行配置的一种替代方法。感谢您提到来自外部源的对象的持久性,我没有想到这一点。您好,欢迎使用StackOverflow。你的问题真的很难理解,你能给我们一个代码示例或其他提示来改进它吗?