为什么JPA要求为选择类型查询打开事务/会话,例如加载延迟属性?这些不能在交易之外加载吗?我完全理解为什么它需要更新或插入,但似乎是选择的一个不必要的约束(加上新手对延迟加载的许多痛苦)。
答案 0 :(得分:0)
JPA不需要事务,但需要EntityManager
(Hibernate:Session
)才能执行此操作。这就是为什么可以通过OpenEntityManagerInView
(或OpenSessionInView
)而不是OpenTransactionInView
来完成解决方法。
是什么让您认为您需要交易?有关没有事务的简单示例代码,请参阅here。