jpa - Spring中的@Version注解
问题描述
嘿伙计们,我如何使用@version 注释,而不是替换修改后的数据,而是在数据库中添加一个具有相同标识符和递增版本的新行。例如,这里的 id 173 是重复的,唯一的变化是版本,这是我的目标。
解决方案
@Version
旨在用于乐观锁定,不应用于此目的。
正如Taylor评论的那样,您可以将 Hibernate Envers 用于非常相似的事情。它将生成一个包含所有版本的单独表,而将实体映射到的主表仍然只有当前版本。
如果您希望所有这些实体实际上都在同一个表中,您只需将现有 id 加上一个附加版本字段作为 id,然后复制实体并在更改之前更新版本。此处的版本字段表示您用作版本的普通可能数字字段,它不能用 注释@Version
。
如果您真的想滥用该@Version
属性,您可以在基础表上创建一个触发器,该触发器在每次更新时创建一个新行。
推荐阅读
- ios - 如何防止在 GCD 中释放对象?
- android - MediaStyleNotification:播放/暂停按钮不响应点击
- python - Python中的KNN实现
- vue.js - 如何每天使用 charjs 作为堆栈组来表示一个数据集的数据?
- angular - nativescript-bluetooth 不显示设备
- javascript - 在 MongoDB 中返回具有特定值的对象数组
- java - 如何插入780k条记录Spring Data Postgres
- c - sed 命令在执行 C 文件时不起作用
- php - SELECT best 50 results and GROUP BY id
- javascript - 鼠标悬停时更改字体颜色