问题解决: 谢谢你们,看到我的答案如下。

我有一个网站运行在Tomcat5.5迷上了一个MySQL5数据库使用Hibernate3.

一个记录只是拒绝保留的任何变化进行的。如果我改变记录的编程方式,值恢复到他们是什么以前。

如果我手修改数据库中的记录,价值将恢复(似乎一旦网络应用程序访问)。

我已经尝试了停止Tomcat和改变价值观手然后开始Tomcat。检查数据库,值保持不变之后Tomcat已经开始的网络应用程序,但会恢复再一次我加载的网站。

我们还试图删除的Tomcat工作文件夹的网络应用程序。ser缓存文件。

我也检查了编码的价值观正在恢复,并且无法找到他们。

我只是注意到它在这一具体记录。

编辑: 我刚刚看SQL输出休眠使用休眠状态。show_sql=true。还有一个更新的查询记录表我的行为中。没有人知道如何解决?列的实际价值?

有帮助吗?

解决方案

您可以暂时启用mysql查询日志记录,并确切了解sql语句更改了该值的内容。既然你说它在服务器启动后立即发生了变化,你应该能够很快找出语句。

http://dev.mysql.com/doc /refman/5.0/en/query-log.html

其他提示

回答你的问题:

  

有谁知道如何解决?   列到实际值?

您可以使用 p6spy 执行此操作。有关如何在Spring应用程序中进行设置的说明可用这里

但是,我认为这些说明中存在错误,他们称为p6spy.log的文件实际上应该是名称p6spy.properties。

它越来越靠近万圣节,所以你必须想到这样的事情(加上它只是一个满月),但我会继续寻找罪魁祸首在网应用程序...它必须在那里。几值我会立即搜索的网络应用程序的源代码:

  • Id的记录正在改变。
  • 值得被写入 记录。

祝你好运...这些可真正的熊找到的!

这有点像启动时的测试用例,它会在测试之前将行修改为预期的行。

在BEFORE UPDATE之前添加一个触发器,检查行ID,如果它与您的魔术行匹配则引发SQL错误。 然后检查生成的堆栈跟踪,遍历代码并找到更新行的部分。

感谢大家的帮助。所有这些建议都可以用来追踪它。

我设法找出导致它的原因。糟糕的数据库设计,多种数据模型和Hibernate使得一些讨厌的东西。另一个表存储了值,该类正在扩展具有相同值的基类。

时间考虑做一些规范化。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top