transactionAttributes各属性意义及配置
发布时间 - 2026-01-11 03:21:06 点击率:次在使用spring提供的JpaTemplate进行查询时,如果数据量超过100 条,查询效率就会明显降低。由于开始时使用JPA内部的双向关联,造成各实体内部关联过多,从而影响所有的操作,因此怀疑是因为JPA的关联关系所致。但是去掉关联关系后的效果不显著。

配置问题。
<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" lazy-init="true" abstract="true"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="transactionAttributes"> <props> <prop key="sav*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean>
使用上述配置,在JPA打出的日志中显示每次查询时都要进行更新操作,查阅相关spring 的资料后发现transactionAttributes的各种属性的意义如下:
| 事务传播行为类型 | 说明 |
| PROPAGATION_REQUIRED | 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。 |
| PROPAGATION_SUPPORTS | 支持当前事务,如果当前没有事务,就以非事务方式执行。 |
| PROPAGATION_MANDATORY | 使用当前的事务,如果当前没有事务,就抛出异常。 |
| PROPAGATION_REQUIRES_NEW | 新建事务,如果当前存在事务,把当前事务挂起。 |
| PROPAGATION_NOT_SUPPORTED | 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 |
| PROPAGATION_NEVER | 以非事务方式执行,如果当前存在事务,则抛出异常。 |
| PROPAGATION_NESTED | 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。 |
# transactionAttributes
# 属性
# 配置
# Spring事务Transaction配置的五种注入方式详解
# Spring中@Transactional用法详细介绍
# 抛出
# 挂起
# 这是
# 关联关系
# 就会
# 是因为
# 都要
# 就把
# 则在
# 就以
# 最常见
# 新建一个
# init
# true
# abstract
# TransactionProxyFactoryBean
# interceptor
# lazy
# prop
# props
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Python3.6正式版新特性预览
如何批量查询域名的建站时间记录?
Mybatis 中的insertOrUpdate操作
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
非常酷的网站设计制作软件,酷培ai教育官方网站?
Laravel如何处理异常和错误?(Handler示例)
Laravel如何实现本地化和多语言支持?(i18n教程)
BootStrap整体框架之基础布局组件
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
WEB开发之注册页面验证码倒计时代码的实现
个人摄影网站制作流程,摄影爱好者都去什么网站?
PythonWeb开发入门教程_Flask快速构建Web应用
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
Laravel如何处理表单验证?(Requests代码示例)
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
Laravel怎么实现模型属性的自动加密
Laravel如何使用Sanctum进行API认证?(SPA实战)
如何在景安云服务器上绑定域名并配置虚拟主机?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
如何在建站之星绑定自定义域名?
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
制作电商网页,电商供应链怎么做?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
如何在IIS中新建站点并配置端口与IP地址?
如何快速搭建高效简练网站?
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
如何在VPS电脑上快速搭建网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
如何用y主机助手快速搭建网站?
如何基于云服务器快速搭建个人网站?
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
怎样使用JSON进行数据交换_它有什么限制
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何快速建站并高效导出源代码?
怎么用AI帮你设计一套个性化的手机App图标?
如何在IIS中新建站点并解决端口绑定冲突?
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
如何确保西部建站助手FTP传输的安全性?

