找到关于 Hibernate 的11篇文章

Hibernate 中有哪些不同的继承映射策略?

Manu
更新于 2022年8月26日 11:47:53

825 次浏览

存在三种类型的继承映射策略:表继承层次结构、表具体类和表子类。在本文中,我们将讨论表继承层次结构。表继承层次结构只为继承映射创建一个表。这种方法的缺点是表中会存储大量空值。`@Inheritance(strategy=InheritanceType.SINGLE_TABLE)`、`@DiscriminatorColumn` 和 `@DiscriminatorValue` 是此策略中使用的注解。`@DiscriminatorColumn` 用于创建一个附加列,用于标识层次结构类。请考虑以下示例以了解这一点:步骤……阅读更多

如何在 Hibernate 中执行批量插入更新?

Manu
更新于 2022年8月26日 11:40:06

3K+ 次浏览

在本文中,我们将了解如何在 Hibernate 中执行批量插入/更新。每当我们执行 SQL 语句时,我们都是通过向数据库发出网络调用来执行的。现在,如果我们必须将 10 个条目插入到我们的数据库表中,那么我们必须进行 10 次网络调用。我们可以通过使用批处理来优化我们的网络调用。批处理允许我们在单个网络调用中执行一组 SQL 语句。为了理解和实现这一点,让我们定义我们的实体:`@Entity public class Parent { @Id @GeneratedValue(strategy ... 阅读更多

如何使用聚合函数自定义 JPA 查询的结果?

Manu
更新于 2022年8月26日 11:34:40

2K+ 次浏览

大多数情况下,当我们使用 JPA 查询时,获得的结果被映射到对象/特定数据类型。但是,当我们在查询中使用聚合函数时,处理结果有时需要我们自定义 JPA 查询。让我们通过一个示例(部门、员工)来理解这一点:Dept.java `@Entity public class Dept { @Id private Long id; private String name; @OneToMany(mappedBy = "dep") private List emp; //Getters //Setters }` 一个部门可以拥有一个或多个……阅读更多

如何将 Hibernate 连接到 MySQL 数据库?

Manu
更新于 2022年8月26日 11:28:09

9K+ 次浏览

在本文中,我们将了解如何使用像 Hibernate 这样的 ORM(对象关系映射)框架连接到 MySQL 数据库。首先,我们需要在我们的 pom.xml 文件中添加 Hibernate 的 Maven 依赖项:`org.hibernate hibernate-core 5.6.2.Final` 现在,让我们定义一个实体类,它将使用 Hibernate 映射到数据库表。`@Entity @Table( name = " Employee") public class Employee { @Id @GeneratedValue(strategy = GenerationType.AUTO) Long id; @Column(name = ... 阅读更多

Hibernate 二级缓存如何工作?

Manu
更新于 2022年8月26日 11:24:31

2K+ 次浏览

缓存有助于减少执行查询的数据库网络调用。一级缓存与会话相关联。它是隐式实现的。一级缓存只存在于会话对象存在期间。一旦会话对象终止/关闭,就不会有缓存对象。二级缓存跨多个会话对象工作。它与会话工厂相关联。二级缓存对象可用于单个会话工厂中的所有会话。当特定会话工厂关闭时,这些缓存对象将被终止。实现二级缓存我们需要添加以下依赖项才能……阅读更多

Hibernate 和 JPA 的区别

Pradeep Kumar
更新于 2022年7月25日 10:09:14

6K+ 次浏览

Red Hat 开发了 Hibernate 框架,也称为 Hibernate 对象关系映射器 (ORM)。这个用于 Java 编程语言的对象关系映射工具的第一个版本于 2007 年 5 月 23 日提供下载。Hibernate 支持跨多个平台工作的 Java 虚拟机 (JVM),并且是用 Java 编写的。“JPA”代表 Java 持久性 API。它是一个管理关系数据的工具。在最基本的形态下,JPA 是一个规范。它处理对象元数据或关系元数据。Java 持久性查询语言 (JPQL) 是使用的语言……阅读更多

Hibernate 中 sequence 和 identity 的区别

Himanshu shriv
更新于 2020年1月21日 08:04:06

9K+ 次浏览

Hibernate 或 JPA 支持 4 种不同的主键生成器类型。这些生成器用于在向数据库插入行时生成主键。以下是主键生成器:`GenerationType.AUTO`、`GenerationType.IDENTITY`、`GenerationType.SEQUENCE`、`GenerationType.TABLE`。`GenerationType.IDENTITY` - 在 identity 中,数据库负责自动生成主键。插入一行而不为 ID 指定值,并在插入行后,向数据库请求最后生成的 ID。Oracle 11g 不支持 identity 密钥生成器。此功能在 Oracle 12c 中受支持。`GenerationType.SEQUENCE` - 在 sequence 中,我们首先向数据库请求序列的下一组……阅读更多

Hibernate 中 save() 和 persist() 的区别

Himanshu shriv
更新于 2020年1月21日 07:33:48

19K+ 次浏览

Save() 和 persist() 这两种方法都用于将对象保存到数据库中。根据文档:Save() - 首先分配生成的标识符,然后持久化给定的瞬态实例。(或者,如果使用分配的生成器,则使用标识符属性的当前值。)如果关联与 `cascade="save-update"` 映射,则此操作会级联到关联的实例。根据文档:persist() - 使瞬态实例持久化。如果关联与 `cascade="persist"` 映射,则此操作会级联到关联的实例。此方法的语义由 JSR-220 定义。序号|键|save()|persist()|1|基本|它将对象存储到数据库|它也存储对象到数据库|2|返回类型|它返回生成的 ID,返回类型是……阅读更多

Hibernate 中 get() 和 load() 的区别

Himanshu shriv
更新于 2020年1月21日 07:19:37

23K+ 次浏览

在Hibernate中,`get()`和`load()`是两种用于根据给定标识符获取数据的方法。它们都属于Hibernate会话类。如果在会话缓存或数据库中找不到给定标识符对应的行,则`get()`方法返回null;而`load()`方法会抛出对象未找到异常。序号|要点|`get()`|`load()`|---|---|---|1|基本|用于根据给定标识符从数据库中获取数据|用于根据给定标识符从数据库中获取数据|2|空对象|如果找不到给定标识符对应的对象,则返回null对象|将抛出对象未找到异常|3|延迟加载…阅读更多

Hibernate一级缓存和二级缓存的区别

Himanshu shriv
更新于 2020年1月21日 07:12:08

9K+ 次浏览

Hibernate支持两种类型的缓存:一级缓存和二级缓存。一级缓存是会话级缓存,始终与会话级对象相关联。此类缓存用于通过缓存对象的状态来最小化数据库交互。也就是说,它不会在每次事务修改后都更新数据库,而只在事务结束时更新。二级缓存是会话工厂级缓存,可在所有会话中使用。在运行事务期间,它会在会话工厂级别加载对象……阅读更多

广告