![]() |
1
3
此方法的客户端-是否已在事务中?使用NotSupported时,调用方事务将被挂起。如果不是,我会说,只是把从不作为事务类型。因为调用者知道他们不应该从事务内部调用这个方法,所以这是最好的。更直接的合同。 我们总是使用从不进行更多处理的方法,以便开发人员能够立即意识到,如果他们已经参与到事务中,就不要调用。希望能有帮助。 |
![]() |
2
3
我很想不同意,因为很少发生用户不在中的事务中 所有的系统。最好的办法是 不支持使用 因此,如果调用方已经在任何事务中,则事务将被挂起。除非有一系列调用都不在事务范围内,否则决不会有麻烦。简言之,不受支持是应该使用的类型。 |
![]() |
3
0
据我所知(至少Hibernate是这样),您不能在事务之外使用JPA,因为实体管理器的生命周期与事务的生命周期相关联。因此,执行查询的实际方法必须是事务性的。
在更复杂的系统中,完全分离数据层和业务层并创建一组新的对象是值得的。然后,您的方法将调用JPA查询,然后使用返回的实体填充业务层中的对象,并返回这些对象。这样一来,调用方就永远无法获得实际的JPA实体,您可以在数据层中自由地做您想要做的事情,因为现在它只是一个实现细节。(见鬼,您可以将数据库调用更改为远程API调用,而您的调用方不必知道。) |
![]() |
TheStoryCoder · Yii2:是否在事务外部执行查询? 6 年前 |
![]() |
Ali · 将SQL事务用于单个SQL查询[已关闭] 6 年前 |
![]() |
Marcus Cemes · 选择。。。用于更新在提交后选择旧数据 6 年前 |