社区
Web 开发
帖子详情
按查询的会自动UPDATE
finalsyo
2009-04-02 03:05:20
先简单描述情况,有必要的话再贴出程序吧
用的SSH架构
现象很简单,就是我点查询,在页面上显示出一个LIST列表,但是每次执行查询操作后,它会自动执行很多UPDATE语句
想问一问,在什么情况下,它会自动执行UPDATE啊?是我哪里配置的不好吗?
有经验的朋友帮忙解答下 .. 谢谢 ~~
...全文
127
11
打赏
收藏
按查询的会自动UPDATE
先简单描述情况,有必要的话再贴出程序吧 用的SSH架构 现象很简单,就是我点查询,在页面上显示出一个LIST列表,但是每次执行查询操作后,它会自动执行很多UPDATE语句 想问一问,在什么情况下,它会自动执行UPDATE啊?是我哪里配置的不好吗? 有经验的朋友帮忙解答下 .. 谢谢 ~~
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
finalsyo
2009-04-02
打赏
举报
回复
等 ........................ 还是没找到原因啊 ............
finalsyo
2009-04-02
打赏
举报
回复
大家还有什么建议吗????????????????????
finalsyo
2009-04-02
打赏
举报
回复
[Quote=引用 7 楼 zl_bright 的回复:]
引用 5 楼 finalsyo 的回复:
引用 2 楼 zl_bright 的回复:
你用hibernate从数据库取出的是persistent(持久化)状态对象,
当你对这个对象的操作完成后,
即使没有update操作,hibernate也会自动将这个对象的数据与数据库中的数据同步,
也许你对这个对象进行了某些set操作,
使得这个持久化对象与数据与数据库中的数据不一致,
当session关闭后,hibernate自动更新数据库
那通过配置文件 能关闭这种自动的同步…
[/Quote]
好 可以试一试这个变通的方式
这段代码是我接手别人的...
奇怪的是我的就没有这样的问题
他的就有 所以很想找出问题的根源来..
yztommyhc
2009-04-02
打赏
举报
回复
[Quote=引用 6 楼 finalsyo 的回复:]
引用 4 楼 yztommyhc 的回复:
可能你自己的代码里面有多余的调用,这些调用会执行upadate,仔细检查一下自己的代码。
我想框架一般不会出现什么问题的。
请问多余的调用是指什么调用啊?
我这除了执行一个查询的SQL外没执行别的操作
能举个例子或具体点吗?
[/Quote]
myQuery()
{
query(); // 实际的查询逻辑
update(); //这行用来测试的,但最后你忘记注释了。
}
台城柳月
2009-04-02
打赏
举报
回复
[Quote=引用 5 楼 finalsyo 的回复:]
引用 2 楼 zl_bright 的回复:
你用hibernate从数据库取出的是persistent(持久化)状态对象,
当你对这个对象的操作完成后,
即使没有update操作,hibernate也会自动将这个对象的数据与数据库中的数据同步,
也许你对这个对象进行了某些set操作,
使得这个持久化对象与数据与数据库中的数据不一致,
当session关闭后,hibernate自动更新数据库
那通过配置文件 能关闭这种自动的同步吗?
[/Quote]
这是hibernate的特性,
有一种变通的方法是
不对持久化对象进行set操作,
你可以将该持久化对象clone一个副本
这个副本由于是transient(瞬态)的,不受hibernate控制
你把原来对持久化对象的操作改成对他操作就可以了
绝对不会出现自动更新数据库的情况
finalsyo
2009-04-02
打赏
举报
回复
[Quote=引用 4 楼 yztommyhc 的回复:]
可能你自己的代码里面有多余的调用,这些调用会执行upadate,仔细检查一下自己的代码。
我想框架一般不会出现什么问题的。
[/Quote]
请问多余的调用是指什么调用啊?
我这除了执行一个查询的SQL外没执行别的操作
能举个例子或具体点吗?
finalsyo
2009-04-02
打赏
举报
回复
[Quote=引用 2 楼 zl_bright 的回复:]
你用hibernate从数据库取出的是persistent(持久化)状态对象,
当你对这个对象的操作完成后,
即使没有update操作,hibernate也会自动将这个对象的数据与数据库中的数据同步,
也许你对这个对象进行了某些set操作,
使得这个持久化对象与数据与数据库中的数据不一致,
当session关闭后,hibernate自动更新数据库
[/Quote]
那通过配置文件 能关闭这种自动的同步吗?
yztommyhc
2009-04-02
打赏
举报
回复
可能你自己的代码里面有多余的调用,这些调用会执行upadate,仔细检查一下自己的代码。
我想框架一般不会出现什么问题的。
tianxuejiang123
2009-04-02
打赏
举报
回复
关注!帮你顶一下。
台城柳月
2009-04-02
打赏
举报
回复
你用hibernate从数据库取出的是persistent(持久化)状态对象,
当你对这个对象的操作完成后,
即使没有update操作,hibernate也会自动将这个对象的数据与数据库中的数据
同步
,
也许你对这个对象进行了某些
set
操作,
使得这个持久化对象与数据与数据库中的数据不一致,
当session关闭后,hibernate自动更新数据库
finalsyo
2009-04-02
打赏
举报
回复
在线等 ,,,,,,,,,,,,,,,,,,,,,,
jpa
查询
语句
自动
变成了
update
今天在循环中查数据的时候,到了其中一条,每次断点一过去,就变成了
update
语句,最后发现问题所在,记录一下 场景是我在循环中有个
查询
比如id分别为1,2,3的循环 每次到
查询
2的时候,断点一过就
会
变成一条
update
语句。 然后因为数据库设置了字段不为null,所以就
会
报一个更新错误。 导致我一直以为是2的
查询
语句变成了更新语句 其实不是,这条更新语句是1的更新语句 因为在1查出来之后,对1的实体属性做了修改,但之后没有数据库操作,所以
update
语句没有提交,还在缓存中 知道执行了2的
查询
,这个时候把
Windows
Update
禁用后
自动
开启的解决办法
为了禁止系统
自动
更新,很多用户都
会
禁用Windows
Update
服务,但是后来发现它还
会
自动
开启,这该怎么办?针对这个问题,下面小编就来告诉大家。 一、关闭更新服务后还要禁止它恢复启动 1、按WIn+R调出运行,输入【services.msc】或 此电脑右键--管理--服务和应用程序--服务。 2、在右侧找到WIndows
Update
服务。 3、右键--属性--常规 服务状态改为“停止”,启动类型改为“禁用”。 4、点击恢复,第一次失败改为“无操作”,第二次和后续失败都改为“无操作”。这一
SpringBoot Jpa
自动
事务托管中 在进行对象的set修改后
自动
执行了
update
更新操作解决方案
这个问题是在项目开发到一半的时候,莫名出现的bug,我还纳闷,明明仅仅执行了
查询
操作,怎么
会
有
update
操作的记录去修改了我数据库的对应值。以为自己方法写串线了,debug了好久都没找到原因。 起因是这样,因为业务要求,取出对象值后仅给前端返回自定义业务的set操作,并不需要去数据库修改对应行数据。但是前段每次执行
查询
操作后,调用object.set方法都
自动
执行了一次
update
操作,苦恼了一下午,在网上搜索了很多资料看完后,终于找到了答案。 没错 就是Springboot Jpa 的
自动
事务托管中,他
MySQL、Oracle的时间类型字段
自动
更新:insert插入、
update
更新时,
自动
更新时间戳。设置自增主键id,oracle创建自增id序列和触发器
【代码】MySQL、Oracle的时间类型字段
自动
更新:insert插入、
update
更新时,
自动
更新时间戳。
关于Hibernate执行
查询
后
会
引发
update
操作的解决方法
遇到了这个问题 在网上查了各种方法 这里收集整理了一下 产生原因:hibernate 做持久化时get 和 set 值,发现get 值不同则做同步更新到数据库. 才
会
发生
查询
后又做更新操作 1、使用session.lock(object, LockMode.NONE) (1)、session.saveOr
Update
(object)。这语句
会
把游离态的PO转为持久态的PO并提交
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章