使用注解或使用休眠配置文件休眠

Posted

技术标签:

【中文标题】使用注解或使用休眠配置文件休眠【英文标题】:hibernate using annotations or using hibernate configuration files 【发布时间】:2010-09-02 05:56:25 【问题描述】:

我看过很多使用注解(基本上是hibernate注解或JPA注解)实现休眠的教程。有教程主要侧重于使用休眠配置文件(hbm.xml 文件)。根本不使用注释。

现在我有点困惑,哪种方法更好?

【问题讨论】:

【参考方案1】:

我绝对更喜欢使用注释来定义我的映射元数据。实际上,注解是 Hibernate 开发人员推荐的方法。引用 More XML than code? 中的 Gavin King

当然,Hibernate Annotations 早在 2005 年初就已经存在,人们不再有任何理由在 XML 中定义映射。

优点:

注释通常不那么冗长 注释与代码一起使用,它们更易于维护 (IMO)

缺点:

更改元数据需要重新编译(如果这确实是个问题)

换句话说,如果可以,请使用注释。如果您不能(您无法更改代码,例如在使用旧代码时),请使用 XML 映射。

【讨论】:

【参考方案2】:

这取决于你!我不认为有更好的方法。两种解决方案都致力于同一件事,即帮助 Hibernate 了解数据库的结构。注释的优点是可以直接在您的 Entity Java 类文件中使用。

曾有一段时间,XML 被视为定义配置信息的标准。从 Java 5 开始,最初位于这些 XML 文件中的许多信息现在使用注释直接存储在类中。例如,Spring 3.x 框架或 Java EE 6 现在使用注解。

【讨论】:

【参考方案3】:

这取决于您的喜好。例如,我更喜欢注释类定义什么是主键、哪些值是自动生成的以及实体具有什么关系。我还使用了配置文件 persistence.xml,我在其中定义了 实体如何映射 到数据库。所以我将领域模型的程序员视图分离给了数据库工程师。

【讨论】:

【参考方案4】:

我也更喜欢注释方法,因为我喜欢在一个地方查看类及其数据库配置。另一方面,这是使用配置文件的最大优势:您不需要接触 java 类。

【讨论】:

以上是关于使用注解或使用休眠配置文件休眠的主要内容,如果未能解决你的问题,请参考以下文章

如何为 mysqlcluster 创建休眠配置文件?

休眠的动态类

如何为 sql server 配置休眠配置文件

休眠XML配置文件

如何使用 log4j2.xml 配置休眠日志记录?

Spring Boot:休眠配置