SSH中一次请求不能执行两个操作的问题?,跪求大佬

杂说
博客专家认证
2018-01-11 09:44:52
比如在我的dao里面,如果只执行一个update()方法,就是可以的.
但是我有一个需求是:需要得到对象原本的值,所以在这个dao中的这个方法里面又执行了一个find()方法.
在项目运行过程中,如果只是单独的执行update()方法,是可以成功的
但是如果执行了find()之后又执行了update()后,find()可以查出来数据,但是update()方法就不执行了.

跪求各位大佬解决呀!!!!
...全文
1058 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy3375 2018-09-04
  • 打赏
  • 举报
回复
有没有报错信息
qq_41540648 2018-09-03
  • 打赏
  • 举报
回复
一个session对象对应一个线程,你可能find或Update用了同一个session。用2个session进行2次ioc持久化操作并提交事务处理就行
  • 打赏
  • 举报
回复
今天我也遇到类似的情况,只要不在service中再new 一个service就好了
最猛的阿良 2018-01-15
  • 打赏
  • 举报
回复
大佬如果解决了请回我下我 我也学习下 谢啦
qq_23612255 2018-01-15
  • 打赏
  • 举报
回复
update改成merge试一下
Sunyiban 2018-01-15
  • 打赏
  • 举报
回复
打个断点看看是否两条SQL都执行了,如果执行成功,并且没报错,在考虑事物问题。
扎罗的盒子 2018-01-14
  • 打赏
  • 举报
回复
你把你报的错误,也拿出来给我们看一下,不知道是不是no session的问题
扎罗的盒子 2018-01-13
  • 打赏
  • 举报
回复
不太清楚你到底要做什么。你是要把find查出来的数据update,还是find和update是两个不想干的。
杂说 2018-01-13
  • 打赏
  • 举报
回复
引用 3 楼 Strugglein 的回复:
是查询find了之后没有提交事务吧,



我感觉有可能 但是我不知道事务通过spring管理后,怎么让他每执行一个操作就提交一次 这是我的事务管理
杂说 2018-01-13
  • 打赏
  • 举报
回复
引用 2 楼 iori2882 的回复:
[quote=引用 楼主 CSDN___LYY 的回复:] 比如在我的dao里面,如果只执行一个update()方法,就是可以的. 但是我有一个需求是:需要得到对象原本的值,所以在这个dao中的这个方法里面又执行了一个find()方法. 跪求各位大佬解决呀!!!!
我是这么觉得的,DAO层不应该即写update又写find,那是service层干的事,,你试试DAO层写2个方法,,一个是update 一个 是find,分别测试,没问题了你在service层里新建立个方法,把他们俩组合在一起,然后在测试,就很容易找出问题在哪了[/quote] 我在service里面整合了一下 也是这个问题
杂说 2018-01-13
  • 打赏
  • 举报
回复
引用 1 楼 splendid_java 的回复:
1、单独执行update或find都可以?
2、find与update都是针对entity,不是单纯的sql?
3、事务是怎么管理的?


这是spring的配置文件里面的事务管理

单独执行都是可以的 放在一个请求里面就只能执行第一个 第二个没有效果 也不报错
chengshou2106 2018-01-13
  • 打赏
  • 举报
回复
这不是Dao层要实现的功能吧?在service应该没问题
ZHOU西口 2018-01-13
  • 打赏
  • 举报
回复
引用 7 楼 CSDN___LYY 的回复:
[quote=引用 1 楼 splendid_java 的回复:] 1、单独执行update或find都可以? 2、find与update都是针对entity,不是单纯的sql? 3、事务是怎么管理的?
这是spring的配置文件里面的事务管理 单独执行都是可以的 放在一个请求里面就只能执行第一个 第二个没有效果 也不报错[/quote] 事务加到update方法上,对find方法取消事务管理。查询不需要事务。 LZ把配置文件改改。
红中 2018-01-12
  • 打赏
  • 举报
回复
引用 2 楼 iori2882 的回复:
[quote=引用 楼主 CSDN___LYY 的回复:] 比如在我的dao里面,如果只执行一个update()方法,就是可以的. 但是我有一个需求是:需要得到对象原本的值,所以在这个dao中的这个方法里面又执行了一个find()方法. 跪求各位大佬解决呀!!!!
我是这么觉得的,DAO层不应该即写update又写find,那是service层干的事,,你试试DAO层写2个方法,,一个是update 一个 是find,分别测试,没问题了你在service层里新建立个方法,把他们俩组合在一起,然后在测试,就很容易找出问题在哪了[/quote] service层做这个才对,有人在dao层干这个我肯定让他改掉。
Strugglein 2018-01-12
  • 打赏
  • 举报
回复
是查询find了之后没有提交事务吧,
qq_34712076 2018-01-12
  • 打赏
  • 举报
回复
引用 3 楼 Strugglein 的回复:
是查询find了之后没有提交事务吧,
find也需要提交事物么
iori2882 2018-01-11
  • 打赏
  • 举报
回复
引用 楼主 CSDN___LYY 的回复:
比如在我的dao里面,如果只执行一个update()方法,就是可以的. 但是我有一个需求是:需要得到对象原本的值,所以在这个dao中的这个方法里面又执行了一个find()方法. 跪求各位大佬解决呀!!!!
我是这么觉得的,DAO层不应该即写update又写find,那是service层干的事,,你试试DAO层写2个方法,,一个是update 一个 是find,分别测试,没问题了你在service层里新建立个方法,把他们俩组合在一起,然后在测试,就很容易找出问题在哪了
ZHOU西口 2018-01-11
  • 打赏
  • 举报
回复
1、单独执行update或find都可以? 2、find与update都是针对entity,不是单纯的sql? 3、事务是怎么管理的?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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