我有一个 webapp,其原始代码库是使用手工制作的 hibernate 映射文件开发的。从那时起,我已经相当精通“编码”我的 hbm.xml 文件。但是这些天所有酷孩子都在使用注释。
所以,问题是:重构我的代码以使用休眠注释是否值得?除了时髦和现代,我会得到什么吗?我会失去现有的手工编码映射文件中的任何控制权吗?
一个子问题是,要付出多少努力? 我喜欢我的数据库精益求精。该映射仅涵盖十几个域对象,包括两个集合、一些子类和大约 8 个表。
亲爱的 SOpedians,提前感谢您提供明智的意见。
我有一个 webapp,其原始代码库是使用手工制作的 hibernate 映射文件开发的。从那时起,我已经相当精通“编码”我的 hbm.xml 文件。但是这些天所有酷孩子都在使用注释。
所以,问题是:重构我的代码以使用休眠注释是否值得?除了时髦和现代,我会得到什么吗?我会失去现有的手工编码映射文件中的任何控制权吗?
一个子问题是,要付出多少努力? 我喜欢我的数据库精益求精。该映射仅涵盖十几个域对象,包括两个集合、一些子类和大约 8 个表。
亲爱的 SOpedians,提前感谢您提供明智的意见。
“如果它没有坏 - 不要修理它!”
无论如何,我是一个老式的 POJO/POCO 类型的人,但为什么要更改注释只是为了酷?据我所知,您可以将大部分内容作为注释来完成,但更复杂的映射有时会更清楚地表示为 XML。
使用注释而不是外部映射文件将获得的一件事是,您的映射信息将位于类和字段上,从而提高了可维护性。您添加一个字段,您立即添加注释。你删除一个,你也删除了注释。您重命名一个类或一个字段,注释就在那里,您也可以重命名表或列。您在类继承中进行了更改,它会被考虑在内。您不必稍后再去编辑外部文件。这使得整个事情更高效,更不容易出错。
另一方面,您将失去映射文件曾经为您提供的全局视图。
我最近在一个项目中做了两个,发现:
尽管我喜欢继续进行新的和可能更好的事情,但我需要记住不要弄乱没有损坏的东西。因此,如果现在将休眠映射放在单独的文件中对您有用,我不会更改它。
我绝对更喜欢注释,两者都使用过。它们更易于维护,而且由于您不需要处理那么多要重新映射的类,我会说这是值得的。注释使重构更容易。
XML 和注释都支持所有功能。您仍然可以使用 xml 声明覆盖您的注释。
至于付出的努力,我认为这是值得的,因为您将能够在一个地方查看所有内容,而无需在代码和 xml 文件之间切换(当然,除非您使用两个监视器;))
使用注释您将获得的唯一好处
我可能会争辩说,这是您希望从使用注释中获得的东西。因为您没有使用 NHibernate 获得编译时安全性,所以这是下一个最好的事情。
“如果它没有坏 - 不要修理它!”
@Macka - 谢谢,我需要听听。并感谢大家的回答。
虽然我处于非常幸运的位置,可以对我的工作进行大量的专业和创造性控制,并且可以出于任何原因(排除昂贵的东西)引入几乎任何技术、库或工具,包括“因为所有很酷的孩子们正在使用它” ......移植现有项目核心的重要部分并没有什么意义。
一段时间后,我会在一个未开发项目中试用 Hibernate 或 JPA 注释。不幸的是,我很少得到新的完全独立的项目。