NutzCN Logo
问答 @Aop(TransAop.READ_COMMITTED) 想问一下这个事物可不可以用在controller层,加完后事物没生效
发布于 1618天前 作者 hryc 1338 次浏览 复制 上一个帖子 下一个帖子
标签:

@At("/addDo")
@Ok("json")
@RequiresPermissions("sys.manager.task.add")
@AdaptBy(type= JsonAdaptor.class)
@Aop(TransAop.READ_COMMITTED)
public Object addDo( @Param("..") NutMap para) {
String strJson = JSON.toJSONString(para);
Sys_task task = (Sys_task) JSON.parseObject(strJson, Sys_task.class);
task.setOpBy(StringUtil.getPlatformUid());
Sys_task sysTask = sysTaskService.insert(task);
taskPlatformService.add(sysTask.getId(), sysTask.getId(), sysTask.getJobClass(), sysTask.getCron(),
sysTask.getNote(), sysTask.getData());
return Result.success();
}

18 回复

如何判断出没起作用呢?

另外,既然你要转Sys_task对象,直接写

@Param("..")Sys_task task

@wendal 因为前端是Request Payload 的方式传参 所以@Param("..")Sys_task task这样接收不到 之前有试过的

taskPlatformService.add 这里出现异常了 但是前面的sysTaskService.insert(task); 这个任然插入了数据

taskPlatformService是dubbo代理的?

是的用的是分布式nutzboot @wendal

payload方式是啥方式?发的不是json?

{id: "487d90f5893f48dd9c782ed9885118e5", name: "dsfd",…}
发的是json
发现要加: @AdaptBy(type= JsonAdaptor.class)这个 然后要@Param("..") NutMap para才可以接收解析到

加适配器后直接写类,肯定可以的。。。 跑题了

@wendal 之前测过几次真的NutMap才接的到 还是先聊紧急的吧 那个事物不生效 在controller层

如果是dubbo, 那是肯定的了, 跨进程了

只能在service层做事物处理是吗 @wendal

那我service层 如果调用不同dubbo service服务的话 事物是不是也不会生效呀 是不是只能调用dao

不跨进程的话 Trans.exec和@Aop(TransAop.READ_COMMITTED) 都没问题, 跨进程还需要事务, 就得用seate之类的分布式事务了

dubbo代理的对象调用就是跨进程咯

service层行不行, 依然取决于是否跨进程了

@wendal 我们现在遇到一个改造项目要拆成分布式的 但是之前的代码的事物都是写在controller层的 想问下用没有什么解决办法 不然工作量会非常大

@wendal 好的我来试试seata 感谢支持

seata昨晚具体的看了一遍 想问下有没有nutzBoot整合seata的教程 不太知道怎么整合进去

添加回复
请先登陆
回到顶部