社区
Web 开发
帖子详情
按查询的会自动UPDATE
finalsyo
2009-04-02 03:05:20
先简单描述情况,有必要的话再贴出程序吧
用的SSH架构
现象很简单,就是我点查询,在页面上显示出一个LIST列表,但是每次执行查询操作后,它会自动执行很多UPDATE语句
想问一问,在什么情况下,它会自动执行UPDATE啊?是我哪里配置的不好吗?
有经验的朋友帮忙解答下 .. 谢谢 ~~
...全文
141
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
打赏
举报
回复
在线等 ,,,,,,,,,,,,,,,,,,,,,,
DirectX修复工具V4.3标准版
DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了易用的一键式设计,只要点击主界面上的“检测并修复”按钮,程序就
会
自动
完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。在常规修复过程中,程序还
会
自动
检测DirectX加速状态,在异常时给予用户相应提示。 本程序适用于多个操作系统,如Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1
Update
、Windows 10、Windows 11,同时兼容32位操作系统和64位操作系统。本程序
会
根据系统的不同,
自动
调整任务模式,无需用户进行设置。
DirectX修复工具 V3.3标准 绿色版
DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击主界面上的“检测并修复”按钮,程序就
会
自动
完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。 本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1
Update
、Windows 10,同时兼容32位操作系统和64位操作系统。本程序
会
根据系统的不同,
自动
调整任务模式,无需用户进行设置。 本程序的V3.3版分为标准版、增强版以及在线修复版。其中的标准版以及增强版都包含完整的DirectX组件。除此之外,增强版中还额外包含了c++ Redistributable Package,因此增强版不但能解决DirectX组件的问题,而且还能解决c++组件异常产生的问题。增强版适合无法自行解决c++相关问题的用户使用。在线修复版的功能与标准版相同,只是其所需的文件将通过Internet下载,因此大大减小了程序的体积。本程序的各个版本之间,主程序完全相同,只是配套使用的数据包不同。因此,当您使用标准版数据包时,程序将进行标准修复;当您使用增强版的数据包时,程序将进行增强修复;当数据包不全或没有数据包(即只有DirectX Repair.exe程序)时,程序将进行在线修复。在线修复、离线修复可自由灵活组合,充分满足不同用户的需要。 本程序自V2.0版起采用全新的底层程序架构,使用了异步多线程编程技术,使得检测、下载、修复单独进行,互不干扰,快速如飞。新程序更改了自我校验方式,因此使用新版本的程序时不
会
再出现自我校验失败的错误;但并非取消自我校验,因此程序安全性与之前版本相同,并未降低。 程序有
自动
更新c++功能。由于绝大多数软件运行时需要c++的支持,并且c++的异常也
会
导致0xc000007b错误,因此程序在检测修复的同时,也
会
根据需要更新系统中的c++组件。自V3.2版本开始使用了全新的c++扩展包,可以大幅提高工业软件修复成功的概率。修复c++的功能仅限于增强版,标准版及在线修复版在系统c++异常时(非丢失时)
会
提示用户使用增强版进行修复。 程序有两种窗口样式。正常模式即默认样式,适合绝大多数用户使用。另有一种简约模式,此时窗口将只显示最基本的内容,修复
会
自动
进行,修复完成10秒钟后
会
自动
退出。该窗口样式可以使修复工作变得更加简单快速,同时方便其他软件、游戏将本程序内嵌,即可进行无需人工参与的快速修复。开启简约模式的方法是:打开程序所在目录下的“Settings.ini”文件(如果没有可以自己创建),将其中的“FormStyle”一项的值改为“Simple”并保存即可。 程序有高级筛选功能,开启该功能后用户可以自主选择要修复的文件,避免了其他不必要的修复工作。同时,也支持通过文件进行辅助筛选,只要在程序目录下建立“Filter.dat”文件,其中的每一行写一个需要修复文件的序号即可。该功能仅针对高级用户使用,并且必须在正常窗口模式下才有效(简约模式时无效)。 本程序有
自动
记录日志功能,可以记录每一次检测修复结果,方便在出现问题时,及时分析和查找原因,以便找到解决办法。 程序的“选项”对话框中包含了4项高级功能。点击其中的“注册系统文件夹中所有dll文件”按钮可以
自动
注册系统文件夹下的所有dll文件。该项功能不仅能修复DirectX的问题,还可以修复系统中很多其他由于dll未注册而产生的问题,颇为实用。点击该按钮旁边的小箭头,还可以注册任意指定文件夹下的dll文件,方便用户对绿色版、硬盘版的程序组件进行注册。点击第二个按钮可以为dll文件的右键菜单添加“注册”和“卸载”项,方便对单独的dll文件进行注册。请注意,并不是所有的dll文件都可以通过这种方式注册。点击“DirectX版本”选项卡可以自行修改系统中DirectX的版本信息。点击“DirectX加速”选项卡可以控制系统中DirectX加速的开启与关闭。 新版程序集成了用户反馈程序,可以在用户允许的前提下发送检测修复结果。用户也可以在出现问题时通过反馈程序和软件作者进行交流,共同查找问题。反馈是完全自愿和匿名(如果不填写E-mail地址)的。 本程序的通用版基于Microsoft .NET Framework 2.0开发,对于Windows 2000、Windows XP、Windows 2003的用户需要首先安装.NET Framework 2.0或更高版本方可运行本程序。有关下载和安装的详细信息请参阅“致Windows XP用户.txt”文件。对于Windows Vista、Windows 7及后续用户,可以直接运行本程序。 同时鉴于Windows 8(Windows 8.1、Windows 8.1
Update
)、Windows 10系统中默认未包含.NET Framework 2.0,因此新版的程序文件夹内将包含一个DirectX_Repair_win8的特别版程序,该程序功能与通用版相同,基于.NET Framework 4.0开发,可以在Windows8(Windows 8.1、Windows 8.1
Update
)、Windows 10系统中直接运行(其他系统如果安装了.NET Framework 4.0也可以运行这个特别版的程序)。 本程序的官方博客地址为:http://blog.csdn.net/vbcom/article/details/6962388 所有的更新以及技术支持都可以到该博客上找到。
jpa
查询
语句
自动
变成了
update
今天在循环中查数据的时候,到了其中一条,每次断点一过去,就变成了
update
语句,最后发现问题所在,记录一下 场景是我在循环中有个
查询
比如id分别为1,2,3的循环 每次到
查询
2的时候,断点一过就
会
变成一条
update
语句。 然后因为数据库设置了字段不为null,所以就
会
报一个更新错误。 导致我一直以为是2的
查询
语句变成了更新语句 其实不是,这条更新语句是1的更新语句 因为在1查出来之后,对1的实体属性做了修改,但之后没有数据库操作,所以
update
语句没有提交,还在缓存中 知道执行了2的
查询
,这个时候把
解决JPA
查询
到的对象属性被set后,
自动
执行
update
解决JPA
查询
到的对象属性被set后,
自动
执行
update
使用Hibernate
查询
数据时
会
Update
的原因
公司使用Struts + Spring + Hibernate的框架开发项目,但在最近的开发中发现,每当
查询
数据时,hibernate都
会
Update
所
查询
的内容,一开始以为是项目中在 Web服务器启动时
查询
出的那些静态信息造成的,因为大家到知道的,hibernate通过使用
Update
来持久化游离对象,我最初的想法是在Web服 务器启动时,通过hibernate加载的那些静态信息,用于在h...
Web 开发
81,115
社区成员
341,728
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章