Spring Roo提交版本的意思是什么?

时间:2012-04-26 03:02:51

标签: spring-roo

我不知道为什么我用roo命令创建新实体,它总是有一个文件名版本。

版本字段有什么好处?

如果我不想要它,如何编写不在实体中生成版本文件的roo命令。

1 个答案:

答案 0 :(得分:2)

该领域受到了谴责 @ javax.persistence.Version 实体管理器使用它来创建乐观锁定。

我们来看看这个场景: 有一个CD列表应用程序。

用户可以使用CD数据打开表单并进行修改。 您无法锁定数据库中的记录并等待用户想要修改记录(例如使用SELECT ... FOR UPDATE),因为它需要太长时间(从数据库的角度来看)。很可能在读取数据并返回池后关闭连接。

当您保存记录时,实体管理器会检查数据库中的版本字段是否与您发送的相同。如果是,则可以安全地保存更改并将版本增加1.如果有人在您在屏幕上编辑时修改了记录,那么数据库中的版本高于您的版本,您无法保存数据,因为另一个人已经做到了。 这实际上是锁定(你不能保存,如果有其他人这样做)和opcimistic,因为只有在大多数情况下不存在修改时它才会“锁定”,并且当它没有时它不会使用数据库必须。