我尝试使用spring-data-envers中的findLastChangeRevision
方法获取修订号。我能够获取最后一个实体,但修订号始终为UNKNOWN
。修订号和时间戳分别为空和null
始终。
尝试调试并获取所有修订版本,发现所有修订版本都是UNKNOWN
,其修订版本号和时间戳分别与empty和null
相同。
下面是我的AuditRevisionListener
,用@RevisionNumber
和@RevisionTimeStamp
注解了字段
@RevisionEntity(AuditRevisionListener.class)
public class AuditRevisionEntity {
@Id
@GeneratedValue(generator = "revision_info_id_generator")
@GenericGenerator(
name = "revision_info_id_generator",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "revision_info_id_seq"),
@Parameter(name = "initial_value", value = "1"),
@Parameter(name = "increment_size", value = "1")
})
@RevisionNumber
private Long revisionId;
@RevisionTimestamp
private long timestamp;
@Column(name = "user_id")
private Integer userId;
}
字符串
spring-boot的版本是2.6.2
已经引用了这个,和上面的上下文有点不同。这会是一个bug吗?
spring-data-envers revisionType UNKNOWN
我知道可以使用hibernate-envers获得解决方案,但考虑使用tspring-data-envers
谢谢
1条答案
按热度按时间py49o6xq1#
Hibernate可能会代理你的
AuditRevisionEntity
,而Spring-Data反过来会尝试使用反射来获取修订ID和时间戳的值。问题是代理对象隐藏了这些值,直到你使用getter方法。在你的修订实体上添加@Proxy(lazy = false)
annotation可能会有所帮助。请参阅此问题以供参考:https://github.com/spring-projects/spring-data-envers/issues/250