将 Hibernate 代理对象转换为实际的实体对象
1、概览 {#1概览} ----------- 本文将带你了解 Hibernate 是在什么时候创建代理对象的,代理对象有啥用?以及如何把 Hibernate 的代理对象转换为真正的实体对象。 2、Hibernate 何时创建代理对象? {#2hibernate-何时创建代理对象} -------------------------------------------- ...
1、概览 {#1概览} ----------- 本文将带你了解 Hibernate 是在什么时候创建代理对象的,代理对象有啥用?以及如何把 Hibernate 的代理对象转换为真正的实体对象。 2、Hibernate 何时创建代理对象? {#2hibernate-何时创建代理对象} -------------------------------------------- ...
1、概览 {#1概览} ----------- 本文将带你了解如何解决 Hibernate 异常 *QueryException: "named parameter not bound"*。 2、理解异常 {#2理解异常} --------------- 简而言之,在将 Hibernate 查询转换为 SQL 时,由于语法无效,Hibernate 会抛...
1、简介 {#1简介} ----------- 在 *Hibernate* 中,`load()` 和 `get()` 是用于从数据库检索数据的两种方法。本文将带你了解这两种方法之间的区别。 2、加载策略 {#2加载策略} --------------- *Hibernate* 中的 `load()` 方法采用了一种懒加载策略。调用该方法时,它会返回一个实体的代理对象,延迟...
1、概览 {#1概览} ----------- 本文将带你了解 Hibernate 出现异常 "UnknownEntityException:Could not resolve root entity" 的原因,以及解决办法。 2、理解异常 {#2理解异常} --------------- 通常,在 HQL 或 JPQL 查询中解析已知映射实体名称失败...
1、简介 {#1简介} ----------- 本文将带你了解如何为数据库序列(Sequences)配置 Hibernate 6 的隐式 [命名策略](https://docs.jboss.org/hibernate/orm/6.3/introduction/html_single/Hibernate_Introduction.html#naming-strategies)。...
1、概览 {#1概览} ----------- 本文将带你了解 *Hibernate 6.5* 中引入的用于 `INSERT` 查询的 `ON CONFLICT` 子句。 我们使用 `ON CONFLICT` 子句来处理使用 *HQL* 或 *Criteria* 查询插入数据时违反表约束的情况。`ON CONFLICT` 子句也可以用于处理 `upsert` 查询。 2、...
1、概览 {#1概览} ----------- 在使用 *Hibernate* 时,经常会遇到这样的情况:在将实体持久化到数据库之前,需要更改字段的值。这种情况可能是因为需要执行必要的字段转换。 本文将通过一个示例:即在执行更新和插入操作前将字段值转换为大写字母,来了解实现这一目的的不同方法。 2、实体生命周期回调 {#2实体生命周期回调} ---------------...
1、概览 {#1概览} ----------- 本文将带你了解如何使用 *Spring* JDBC 框架的 `JdbcTemplate` 来调用存储过程。数据库存储过程类似于函数。函数支持输入参数并有返回类型,而存储过程同时支持输入和输出参数。 2、先决条件 {#2先决条件} --------------- 来看看 *PostgreSQL* 数据库中一个简单的存储过程: ...
1、概览 {#1概览} ----------- 通常,我们使用遍历从 JDBC `ResultSet` 中迭代检索到的数据,不过在某些情况下,我更喜欢用 *record* `Stream`。 本文将带你了解使用 Stream API 处理 JDBC 结果集的几种方法。 2、使用 Spliterators {#2使用-spliterators} --------------...
mysql 8 相对 低版本的 驱动包不一样 java.sql.SQLException: com.mysql.cj.jdbc.Driver 1- mysql8 driver=com.mysql.cj.jdbc.Driver 2- mysql5.7以及 mysql8 以下 driver=com.mysql.jdbc.Driver ...