Hibernate 冬眠';Grails应用程序中的s版本值

Hibernate 冬眠';Grails应用程序中的s版本值,hibernate,grails,version,Hibernate,Grails,Version,我正在查看一个数据库转储文件,在不同的表中看到许多记录的版本号设置为0以外的值(在一种情况下甚至是94)。我知道这与hibernate锁定策略有关,但我担心的是,今天是星期天,该网站几乎没有访问者。这正常吗?或者是有一个已知的hibernate bug或者甚至是一些编程错误导致了这种情况 顺便问一下,在恢复数据库备份时,是否安全/建议手动将这些值重置为零?Hibernate version字段实际上只是记录保存了多少次的计数(从第一次保存记录开始,减去1,值为0)。请注意,这个数字实际上没有用作

我正在查看一个数据库转储文件,在不同的表中看到许多记录的版本号设置为0以外的值(在一种情况下甚至是94)。我知道这与hibernate锁定策略有关,但我担心的是,今天是星期天,该网站几乎没有访问者。这正常吗?或者是有一个已知的hibernate bug或者甚至是一些编程错误导致了这种情况


顺便问一下,在恢复数据库备份时,是否安全/建议手动将这些值重置为零?

Hibernate version字段实际上只是记录保存了多少次的计数(从第一次保存记录开始,减去1,值为0)。请注意,这个数字实际上没有用作存储计数,因此任何时候的实际值都不重要

它的使用方式是确定在读取行和尝试保存行之间是否保存了行。如果您读取了该行,并且版本值为12,那么稍后您将更改该对象并尝试保存它。Hibernate做的第一件事是检查该行上的DB for version中的值是否仍然是12。如果没有,则自您读取该行后,其他进程已保存该行,如果您现在保存,则可能会覆盖在上次保存期间所做的某些更改


要回答你的问题。。。只要在一个潜在的读取/存储过程中没有任何内容处于“中间”(比如站点关闭,或者类似的情况),那么您就可以将版本字段更改为您喜欢的任何数字。每次存储该行时,它都会从该行开始递增。

Hibernate version字段实际上只是记录保存了多少次的计数(好的,减去1,因为它第一次保存时的值是0)。请注意,这个数字实际上没有用作存储计数,因此任何时候的实际值都不重要

它的使用方式是确定在读取行和尝试保存行之间是否保存了行。如果您读取了该行,并且版本值为12,那么稍后您将更改该对象并尝试保存它。Hibernate做的第一件事是检查该行上的DB for version中的值是否仍然是12。如果没有,则自您读取该行后,其他进程已保存该行,如果您现在保存,则可能会覆盖在上次保存期间所做的某些更改


要回答你的问题。。。只要在一个潜在的读取/存储过程中没有任何内容处于“中间”(比如站点关闭,或者类似的情况),那么您就可以将版本字段更改为您喜欢的任何数字。每次存储该行时,它都会从该行开始递增。

此外,如果您不需要它,可以使用

静态映射{ 版本错误
}

此外,如果您不需要它,可以使用

静态映射{ 版本错误 }