当前位置: 首页 > 面试题库 >

人们为什么继续使用xml映射文件而不是注释?[关闭]

濮升
2023-03-14
问题内容

我已经观察到一个奇怪的事实(基于hibernate标记中的问题),人们仍在积极使用xml文件而不是使用注释来指定其ORM(Hibernate /JPA)映射。

在某些情况下,这是必需的:

  • 您正在使用提供的类,并且想要映射它们。
  • 您正在编写一个API,其域类可以在没有JPA提供程序的情况下使用,因此您不想强制JPA / Hibernate依赖关系。

但是,我认为这些情况并不常见。

我的假设是:

  • 人们习惯于使用xml文件并且不习惯/不想学习使用注释方法。
  • Java 1.5之前的版本被强加到项目上,与它无关
  • 人们不知道注释是xml映射的全功能替代。
  • 支持旧系统,因此更改方法被认为是有风险的
  • 人们担心将注释(元信息)与其类混合使用是错误的。

还有其他可能的解释吗?


问题答案:

某些人认为域层和持久层是单独的关注点。使用纯XML方法可以使两层保持尽可能松散的耦合。当域代码中嵌入了与持久性相关的代码时,使用批注将这两层紧密地结合在一起。



 类似资料:
  • 问题内容: 我已经观察到一个奇怪的事实(基于hibernate标记中的问题),人们仍在积极使用xml文件而不是使用注释来指定其ORM(Hibernate /JPA)映射。 在某些情况下,这是必需的: 您正在使用提供的类,并且想要映射它们。 您正在编写一个API,其域类可以在没有JPA提供程序的情况下使用,因此您不想强制JPA / Hibernate依赖关系。 但是,我认为这些情况并不常见。 我的假

  • 问题内容: 几天前,我开始与Hibernate合作时,我只是想知道:假设您正在从头开始一个项目。您是否将使用基于注释的映射或Hibernate映射文件来生成数据库模式。 据我了解,Hibernate映射文件提供了一些注解所没有的功能(至少不是完全等效的功能)。但是,我仍然感觉到,如今,使用Hibernate的项目宁愿基于注释而不是Hibernate映射文件。 有没有人选择过注解上的映射文件,如果是

  • 问题内容: 我有一个正在创建Hibernate映射的类,该类包含一个无法修改的旧对象,因此它没有必要的id字段来与Hibernate完美配合。我想将旧对象注释为新类的@Embedded字段,并为旧对象编写hbm.xml文件,并注意它是可嵌入的。有没有办法做到这一点?我见过的唯一的嵌入对象的文档指的是对对象进行注释,而不是使用XML。 我意识到我可以扩展旧对象并对其进行适当的注释,但是这些情况可能经

  • 在Spring MVC中,类DefaultAnnotationHandlerMapping已被弃用。文档(http://docs . spring . io/spring/docs/current/javadoc-API/org/spring framework/web/servlet/MVC/annotation/defaultannotationhandlermapping . html)说:

  • 问题内容: 它为什么如此重要?根据XML映射的优势是什么?你能解释这些吗?谢谢。 问题答案: 它不是“强制性”中的重要内容。有优势和劣势的可能性是不同的。 优点: 编译时检查:如今在IDE中,用Java(而不是Xml)编写非常易于使用。启动应用程序(渐进式编译)时,没有发现 更多错别字 ,也没有什么值得记住的( 完成 )… 使用代码进行本地化(类级别):不必打开两个文件(java和xml)以获取完

  • 问题内容: 考虑此问题中列出的情况: 在Hibernate中映射多级继承 如何使用注释而不是hbm文件完成此映射? 问题答案: 您具体遇到什么问题?通过联接的子类映射类层次结构非常简单: 更新 (基于Michal的评论)。 如果您确实要使用区分符(并且您应该有 充分的 理由这样做),则可以通过将基于类的表策略与辅助表进行混合来实现: 这种方法的缺点是,您必须为每个映射的属性显式指定表: