Hibernate不会做任何事情来显式锁定您从中读取的表。答案确实取决于您使用的数据库以及隔离级别。通过读取行来锁定整个 表
在本世纪编写的任何功能齐全的数据库中都不会发生。对于任何多版本数据库,除非您自己明确锁定该行,否则什么都不会被锁定。
您的事务应该是原子工作单元所需的长度。没有正确或错误的长度。问问自己“这里发生的一切都作为一个单元成功还是失败,并且如果其中任何一个失败,所有这些都将一起回滚?”
这就是您设置交易的范围。
请记住,您不需要事务即可延迟加载!您只需要一个开放的会话。两者未链接。您可以提交事务,并使会话保持打开状态以保持延迟加载工作。



