如何解决如何使用 Envers 跟踪更改,以便将子项更新将父项的当前版本链接到具有更改的子项的当前版本?
假设我们有一个版本化实体 Book。 这本书有一个属性,它也是一个版本实体作者。
Author author = new Author();
author.setName("foo");
save(author);
Book book = new Book();
book.setAuthor(author);
save(book);
现在如果我改变作者的名字,例如
author.setName("bar");
我希望从此时此刻的 Book 版本中看到“bar”。例如
Book book = getRevForHour(Book.class,LocalDateTime.now());
if (book.getAuthor().getName() == "bar") {
System.out.println("got what I wanted");
} else {
System.out.println("didn't get what I wanted");
}
但现在我得到了“foo”,这是作者在为 Book 的最后一次修订版创建时所拥有的值。
有没有办法触发一连串的 rev 创建向上到所有实体?或者有没有更好的方法来获取这样的历史数据?
编辑:
我最终向所有实体添加了一列“last_update”,并且在实体发生更改时完全手动最终向上传播更改。更改 lastUpdate 中的值然后触发 envers 以创建新版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。