spring - DAO,SERVICE层是干什么用的
问题描述
这两层是什么?为什么我们必须在服务中执行 dao-method?为什么我们应该只在服务方法字段中使用@Transactional。为什么我们不能直接在 dao 方法上使用 @Transactional 并且不使用服务?
解决方案
因为有很多方法可以管理称为事务传播的事务
TransactionDefinition.PROPAGATION_MANDATORY :支持当前事务;如果当前不存在事务,则抛出异常。
TransactionDefinition.PROPAGATION_NESTED :如果当前事务存在,则在嵌套事务中执行。
TransactionDefinition.PROPAGATION_NEVER :不支持当前事务;如果当前事务存在,则抛出异常。
TransactionDefinition.PROPAGATION_NOT_SUPPORTED :不支持当前事务;而是始终以非事务方式执行。
TransactionDefinition.PROPAGATION_REQUIRED :支持当前事务;如果不存在则创建一个新的。
TransactionDefinition.PROPAGATION_REQUIRES_NEW :创建一个新事务,如果存在则暂停当前事务。
TransactionDefinition.PROPAGATION_SUPPORTS :支持当前事务;如果不存在,则以非事务方式执行。
TransactionDefinition.TIMEOUT_DEFAULT :使用底层事务系统的默认超时,如果不支持超时,则不使用。
推荐阅读
- javascript - 在 express/REST 中访问数组组件
- python - 为什么我的一个函数在不应该的时候只是循环回来?
- javascript - JS:添加日期对象数组
- python - 如何更改使用 exec() 函数创建的 tkinter 小部件的配置
- json - 为什么我的 json 代码给出了 Post 实例
- c++ - C++ 中的类问题
- cron - Nifi 表达式 - 评估 cron 和当前时间戳?
- java - 从用户手机中检索图像
- c# - 将 C# DLL 导入 C++ 以与 JNI 一起使用
- javascript - 当我左右滑动轮播图像时,整个网站都在向下移动(仅适用于 ios 移动版)