当前位置: 首页 > 知识库问答 >
问题:

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

赫连黎昕
2023-03-14

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

共有3个答案

尤祖鹤
2023-03-14

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

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

沈凡
2023-03-14

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

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

滕星纬
2023-03-14

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

不支持的属性

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

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

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

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

 类似资料:
  • 问题内容: 我的JPA / Hibernate应用程序中有几个映射的对象。在网络上,我收到的数据包代表这些对象的更新,或者实际上可能完全代表新的对象。 我想写一个像 如果数据库中存在一个带有pk primaryKey的对象,则该对象将返回所提供类的一个对象,否则将创建该类的新对象,并将其持久化并返回。 接下来我将要处理的对象是在事务中更新其所有字段。 在JPA中是否有惯用的方法来执行此操作,还是有

  • 问题内容: 我很沮丧,我不知道该怎么做。 基本上,我只想创建一个表,但是如果它存在,则需要将其删除并重新创建,而不是将其截断,但是如果不存在,则可以创建它。 有人可以帮忙吗? 谢谢乔治 问题答案: 放在tablename您的发言之前。 该语句将删除该表(如果存在),但如果不存在则不会引发错误。

  • 我在代码优先的情况下使用EF,我有这样的模型: 我收到一个客户ID和一个产品ID列表。当产品在数据库中不存在时,我想添加它: 问题是EF试图级联更改并尝试插入一个新的对象,其ID与现有对象相同,因此失败。我如何解决这个问题? 这是插入方法:

  • 问题内容: 我正在使用PostgreSQL,并且是SQL的初学者。我正在尝试从查询创建表,并且如果运行: 它工作正常。但是然后如果我添加“如果不存在”并运行: 使用完全相同的查询,我得到: 有什么办法吗? 问题答案: CREATE TABLE AS被认为是与普通CREATE TABLE 分开的语句,并且 直到Postgres版本9.5 (请参阅changelog条目)不支持子句 为止 。(请务必查

  • 问题内容: 创建新表时遇到一些问题。当我使用CREATE TABLE命令时,我的新表将按应有的形式出现,但是当我退出活动时,应用程序崩溃,并且在logcat中得到了一个表已经存在的信息。如果我使用CREATE TABLE IF NOT EXISTS不存在,则不会形成新表,而只是将新的数据行添加到上一个表中,并且不会崩溃。这有什么问题?我想添加没有它的表,让我已经存在,并且我想要添加它而不向其他表添

  • 问题内容: 如果目录不存在,这是创建目录的正确方法吗?它应该对该脚本具有完全的权限,并且可以被其他人读取。 问题答案: