我想知道休眠是如何工作的……假设我有三个实体类:A、B 和 C。
我知道已经知道以下事实:
- 我不会对 B 对象做任何选择语句。
- 我将在 B 中插入(通过调用 persist())数十万行新行。
- 我将选择和更新 A 对象数百次。
- 我不会对 C 对象做任何操作。
- 数据库中以前保存了数十万个 C 对象。
- 在另一个会话中,我将重复完全相同的操作。
结果,数据库将变得越来越大,我注意到在 B 对象上调用 persist() 变得更慢。
我的问题是:
- hibernate 会加载数据库中的所有对象吗?所有 A、B 和 C 对象?
- 如何查看 hibernate 为从数据库加载对象所做的操作?
- 我可以控制装载操作吗?事实上,我不想加载 C 对象,也不想加载 B 对象。
- 如何查看和控制数据库中实际加载为实体对象的记录是什么?
- 如果对 B 对象的 id 的唯一性进行验证操作,我可以在日志文件中看到此验证吗?
- 是否可以停用验证操作以加速 B 对象的 persist() 操作?事实上,我可以在我的代码中管理 id 的唯一性,我不想让 hibernate 验证它。