【发布时间】:2026-01-10 04:00:01
【问题描述】:
我想知道 hibernate 是如何工作的...假设我有三个实体类:A、B 和 C。
我知道已经知道以下事实:
- 我不会对 B 对象执行任何选择语句。
- 我将在 B 中插入(通过调用 persist())数十万条新行。
- 我将选择和更新 A 对象数百次。
- 我不会对 C 对象做任何操作。
- 数据库中以前保存了数十万个 C 对象。
- 在其他会话中,我将重复完全相同的操作。
因此,数据库将变得越来越大,我注意到在 B 对象上调用 persist() 变得越来越慢。
我的问题是:
- hibernate 会加载数据库中的所有对象吗?所有 A、B 和 C 对象?
- 如何查看 hibernate 为从数据库加载对象所做的操作?
- 我可以控制加载操作吗?事实上,我不想加载 C 对象,也不想加载 B 对象。
- 如何查看和控制数据库中实际加载为实体对象的记录?
- 如果对B的id的唯一性进行验证操作 对象,我可以在日志文件中看到此验证吗?
- 是否可以停用验证操作以加速 B 对象的 persist() 操作?事实上,我可以在我的代码中管理 id 的唯一性,我不想让 hibernate 验证它。
【问题讨论】:
标签: hibernate persistence persist