我想现在 Hibernate 中的 CascadeType 和 FetchType 有什么区别?
它们看起来非常相似,但我想它们不能互换,对吧?什么时候使用它们?它们可以同时使用吗?
我想现在 Hibernate 中的 CascadeType 和 FetchType 有什么区别?
它们看起来非常相似,但我想它们不能互换,对吧?什么时候使用它们?它们可以同时使用吗?
这是2个不同的东西:
在CascadeType
Hib 中。可能是REFRESH
, MERGE
, ...,ALL
您将其放在相关实体下,如果当前实体是:刷新、更新、删除等,它会确定相关实体的行为CascadeType
。因此,每当您的实体受到影响时,就会告诉相关实体是否也应该受到影响。
FetchType
只能是 2 :EAGER
和LAZY
. 您也可以将它放在相关实体下,它确定是在当前实体初始化时立即初始化相关实体(EAGER
)还是仅按需初始化(LAZY
)。
两者是不同的配置,您可以将其与简单的 SQL 关联起来。
Cascade 告诉您更新一个实体时会发生什么(在 sql 中删除级联)
Fetch 告诉查询将如何被执行(join、lazy ...)
他们两个有很大的不同。
您可以在以下位置找到更多关于它们的信息: