Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 为什么JPA需要事务来加载实体_Hibernate_Jpa - Fatal编程技术网

Hibernate 为什么JPA需要事务来加载实体

Hibernate 为什么JPA需要事务来加载实体,hibernate,jpa,Hibernate,Jpa,为什么JPA要求为选择类型查询(例如加载惰性属性)打开事务/会话?这些不能在事务之外加载吗?我完全理解为什么更新或插入时需要它,但对于selects来说,这似乎是一个不必要的约束,对于新手来说,延迟加载会带来很多痛苦。JPA不需要事务,而是需要EntityManager Hibernate:Session来完成。这就是为什么可以通过OpenEntityManagerView或OpenSessionInView而不是OpenTransactionView来解决问题 什么使你认为你需要交易?有关不带

为什么JPA要求为选择类型查询(例如加载惰性属性)打开事务/会话?这些不能在事务之外加载吗?我完全理解为什么更新或插入时需要它,但对于selects来说,这似乎是一个不必要的约束,对于新手来说,延迟加载会带来很多痛苦。

JPA不需要事务,而是需要EntityManager Hibernate:Session来完成。这就是为什么可以通过OpenEntityManagerView或OpenSessionInView而不是OpenTransactionView来解决问题


什么使你认为你需要交易?有关不带事务的简单示例代码,请参阅。

OpenEntityManagerView启动第二个事务以加载惰性属性。确切地说,这是一种变通方法,在我看来,这不是处理惰性负载的好设计模式。