如何解决休眠转换版本号
我认为hibernate-envers及其使用的修订号存在问题。当我创建多个实体时,它们将被添加到审核表中,但是修订号不是我期望的。
我有一个全局修订序列,而不是每个实体的序列。即如果我更新实体,它不会获得grant_type=authorization_code&code=....
的修订版本号,而是会获得下一个免费的全局修订版本号。
示例:
old_entity.revision_number + 1
我的印象是修订版本编号将基于实体而不是全局,并且示例代码也暗示了这种行为。我的实体如下:
Entity a = new Entity(); // lets say id = 1
Entity b = new Entity(); // lets say id = 2
save(a);
save(b);
// modify a
save(a);
Entity aRevision1 = auditReader.find(Entity.class,1,1); // will be a (revisioned)
Entity bRevision1 = auditReader.find(Entity.class,2,1); // will be null
Entity bRevision2 = auditReader.find(Entity.class,2); // will be b (current)
Entity aRevision2 = auditReader.find(Entity.class,2); // will be null
Entity aRevision3 = auditReader.find(Entity.class,3); // will be a (current)
@Audited
@MappedSuperclass
public class BaseEntity {
@Id
@GeneratedValue
private Long id;
private String comment;
private String user_account;
private LocalDateTime touchDate;
@Basic (fetch = FetchType.LAZY)
private byte[] sourceData;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。