提问者:小点点

创建TransactionAttribute类型好吗。如果该方法不存在于任何实体中,则不支持


如果我有嵌套的bean方法,它只是从数据库中获取数据。(即GET API)。那么将所有bean方法标记为TransactionAttributeType.NOT_SUPPORTED会有好处吗?因为JTA没有为此管理任何事务,这会有助于提高性能吗?


共3个答案

匿名用户

这正是使用< code>NOT_SUPPORTED来提高性能的目的。事实上,甲骨文声明:

不支持的属性

如果客户端在事务中运行并调用企业 Bean 的方法,则容器会在调用该方法之前挂起客户端的事务。方法完成后,容器将恢复客户端的事务。

如果客户端未与事务关联,则容器不会在运行该方法之前启动新事务。

对不需要事务的方法使用NotSupported属性。因为事务涉及开销,所以该属性可以提高性能。

因此,它非常适合所有选择或查找业务方法,其目的可能是在屏幕上填充数据表。

匿名用户

如果有一个处理在使用事务上下文调用时会导致异常,则NOT_。例如,在XA处理上下文中调用包含DDL代码的存储过程将导致发生异常。如果更改存储过程不是一个选项,请使用not_SUPPORTED属性作为解决方法,并在调用包含问题存储过程的方法之前挂起事务。

如果在只读事务使用SUPPORTS中允许事务回滚,如果在只读事务使用中不允许事务回滚NOT_SUPPORTED。

匿名用户

本文说:“不,在只读查询中使用NOT_SUPPORTED事务传播是没有意义的”。这是由JPA专家弗拉德·米哈尔恰撰写的。

确实TransactionAttributeType。NOT_SUPPORTED对于检索实体有意义吗?