按查询的会自动UPDATE

finalsyo 2009-04-02 03:05:20
先简单描述情况,有必要的话再贴出程序吧

用的SSH架构

现象很简单,就是我点查询,在页面上显示出一个LIST列表,但是每次执行查询操作后,它会自动执行很多UPDATE语句

想问一问,在什么情况下,它会自动执行UPDATE啊?是我哪里配置的不好吗?

有经验的朋友帮忙解答下 .. 谢谢 ~~
...全文
125 11 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
在线等 ,,,,,,,,,,,,,,,,,,,,,,

81,113

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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