spring的事务管理配置在DAO层,但是可以在service层使用

jsshizhanab 2014-08-02 10:54:34
这是为什么?@Transactional
...全文
3285 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
saber qiuqiu 2017-01-18
  • 打赏
  • 举报
回复
引用 19 楼 xiekuntarena 的回复:
其实在哪实现都行,重点是好的分层,对于代码的维护更简单一些,DAO专门管数据层,service专门做业务逻辑,action专门做请求转发处理。
看到这里终于认清DAO SERVICE ACTION的这些层该如何用了
qq_34494077 2016-10-22
  • 打赏
  • 举报
回复
@Transactional 这个是spring注解 不是应该放在services层的吗 为什么要放在dao层
月明星稀灬 2016-10-22
  • 打赏
  • 举报
回复
其实在哪实现都行,重点是好的分层,对于代码的维护更简单一些,DAO专门管数据层,service专门做业务逻辑,action专门做请求转发处理。
jin2751611 2016-10-17
  • 打赏
  • 举报
回复
请问下,Spring+JdbcTemplate怎么配置多个数据库的事务管理??在线等,急!!!
wkq2786130 2015-11-16
  • 打赏
  • 举报
回复
求发一份代码。
我是为仔 2014-08-21
  • 打赏
  • 举报
回复
配置到Dao层意义不大吧
qq_19814815 2014-08-20
  • 打赏
  • 举报
回复
转向者 2014-08-06
  • 打赏
  • 举报
回复
引用 2 楼 u012367513 的回复:
当然可以用啦,事务的实质就是要你操作数据库时从一而终,要么全部完成,要么回滚撤销所有操作,在dao层的方法对数据库的操作通常来说是简单的,没业务逻辑性的,所以对于这种加了一个事务也可以,但没必要; 但在service层,里面的方法通常是包含一些复杂逻辑的,一个方法可能就调用了dao的多个方法,所以就必须做到事务管理,要么service方法里面的dao方法全部执行,要么全部撤销。这样才能保证数据库数据的正确性。
+1
文哥xxx 2014-08-04
  • 打赏
  • 举报
回复
@Transactional 是spring的事务 怎么不能使用
shu_lin 2014-08-04
  • 打赏
  • 举报
回复
引用 10 楼 hungge 的回复:
[quote=引用 6 楼 u012909091 的回复:] 我记得Spring开发团队建议在service中使用这个注解——@Transactional
哪里提到过?文档里面?[/quote] Spring团队的建议是你在具体的类(或类的方法)上使用 @Transactional 注解,而不要使用在类所要实现的任何接口上。你当然可以在接口上使用 @Transactional 注解,但是这将只能当你设置了基于接口的代理时它才生效。因为注解是 不能继承 的,这就意味着如果你正在使用基于类的代理时,那么事务的设置将不能被基于类的代理所识别,而且对象也将不会被事务代理所包装(将被确认为严重的)。因此,请接受Spring团队的建议并且在具体的类上使用 @Transactional 注解。——引用自http://blog.csdn.net/defonds/article/details/6888311
csdn_java_coder 2014-08-04
  • 打赏
  • 举报
回复
引用 6 楼 u012909091 的回复:
我记得Spring开发团队建议在service中使用这个注解——@Transactional
哪里提到过?文档里面?
  • 打赏
  • 举报
回复
引用 7 楼 jsshizhanab 的回复:
引用 6 楼 u012909091 的回复:
我记得Spring开发团队建议在service中使用这个注解——@Transactional
可能是我表述有问题吧,你们基本都没理解我的意思
那就是你的问题了
jsshizhanab 2014-08-03
  • 打赏
  • 举报
回复
引用 6 楼 u012909091 的回复:
我记得Spring开发团队建议在service中使用这个注解——@Transactional
可能是我表述有问题吧,你们基本都没理解我的意思
shu_lin 2014-08-03
  • 打赏
  • 举报
回复
我记得Spring开发团队建议在service中使用这个注解——@Transactional
  • 打赏
  • 举报
回复
对于 Spring 来说不存在什么 service 层和 dao 层!在这两层上的 @Transactional 对于 Spring 而言只是一样的东西
zy_think123 2014-08-02
  • 打赏
  • 举报
回复
一般建议是在Service层使用的,至于为什么,相信你看了楼上的回答已经有了清晰的了解了,同时不是说你配置了@Transactional就起了作用的,也可能是其他的配置影响了,你把你的配置的代码贴上来看看了!
jsshizhanab 2014-08-02
  • 打赏
  • 举报
回复
引用 1 楼 duxingzhe0311 的回复:
配在Service层比较科学吧。
我们的SERVICE和DAO是分开的两个工程功过maven产生依赖,然后是把事务配置在了DAO层,但是在SERVICE可以使用 。真心看不懂
  • 打赏
  • 举报
回复
当然可以用啦,事务的实质就是要你操作数据库时从一而终,要么全部完成,要么回滚撤销所有操作,在dao层的方法对数据库的操作通常来说是简单的,没业务逻辑性的,所以对于这种加了一个事务也可以,但没必要; 但在service层,里面的方法通常是包含一些复杂逻辑的,一个方法可能就调用了dao的多个方法,所以就必须做到事务管理,要么service方法里面的dao方法全部执行,要么全部撤销。这样才能保证数据库数据的正确性。
rockets311 2014-08-02
  • 打赏
  • 举报
回复
配在Service层比较科学吧。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧