社区
Web 开发
帖子详情
按查询的会自动UPDATE
finalsyo
2009-04-02 03:05:20
先简单描述情况,有必要的话再贴出程序吧
用的SSH架构
现象很简单,就是我点查询,在页面上显示出一个LIST列表,但是每次执行查询操作后,它会自动执行很多UPDATE语句
想问一问,在什么情况下,它会自动执行UPDATE啊?是我哪里配置的不好吗?
有经验的朋友帮忙解答下 .. 谢谢 ~~
...全文
156
11
打赏
收藏
按查询的会自动UPDATE
先简单描述情况,有必要的话再贴出程序吧 用的SSH架构 现象很简单,就是我点查询,在页面上显示出一个LIST列表,但是每次执行查询操作后,它会自动执行很多UPDATE语句 想问一问,在什么情况下,它会自动执行UPDATE啊?是我哪里配置的不好吗? 有经验的朋友帮忙解答下 .. 谢谢 ~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
查询
到的对象属性被set后,
自动
执行
update
本文揭示了在Java项目开发中,如何避免JPA
自动
执行
Update
的问题。关键在于理解对象的临时、游离和持久状态,以及如何通过复制对象、清除session缓存来解决更新冲突。确保
查询
和set操作在事务内并提交前进行,避免隐性更新。
jpa
查询
语句
自动
变成了
update
本文记录了一个关于使用JPA进行
查询
时遇到的奇怪问题:
查询
语句被错误地转换为更新语句,导致运行时出现异常。通过调整
查询
方式为JPQL标准语句最终解决了该问题。
Spring+OpenJPA执行
查询
时,
自动
提交
update
的问题
本文描述了一次遇到的在使用Spring框架和Tomcat部署项目时出现的奇怪现象,即在WEB环境下执行select操作后,系统
会
自动
执行
update
操作。经过排查发现,这一问题是由于两个特定的jar包导致的。通过按照spring版本下载对应的jar包并将其拷贝到tomcat/lib目录下,然后在启动tomcat时加入特定参数,问题得以解决。
使用JPA
查询
到的对象属性被set后,
自动
执行
update
语句,更新数据库
探讨SpringData JPA中
查询
对象被set值后
自动
更新数据库的现象,解析持久态对象特性,提供解决方案,避免意外数据覆盖。
JPA
查询
数据库,并set值改变entity属性值,
会
自动
调用
update
方法的问题
本文讲述了在使用JPA
查询
数据时遇到的一个奇怪bug,即
查询
后赋值给主表对象
会
导致数据库被意外更新。原来,这是由于JPA
查询
出的对象处于持久态,其属性改变
会
自动
触发
update
操作。文章详细解析了Hibernate对象的三种状态——瞬时态、持久态和游离态,以及它们之间的转换。为了解决这个问题,作者采用了创建临时对象并赋值的方式,避免了不必要的更新。最后,文章提醒读者,JPA操作必须在事务内进行,并且注意对象状态管理,以防止类似问题的发生。
Web 开发
81,111
社区成员
341,727
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章