,可以通过以下步骤实现:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-envers</artifactId>
</dependency>
@Audited
注解标记需要进行修订的属性。例如,如果你有一个User
实体类,并且它包含一个嵌套的Address
对象,你可以这样定义:@Entity
@Audited
public class User {
// 其他属性...
@Embedded
private Address address;
// 其他方法...
}
RevisionRepository
的接口,用于查询修订历史。例如,你可以创建一个UserRevisionRepository
接口:@Repository
public interface UserRevisionRepository extends RevisionRepository<User, Long, Integer> {
}
UserRevisionRepository
并使用其提供的方法进行查询。例如,你可以在一个UserService
中进行查询:@Service
public class UserService {
private final UserRevisionRepository userRevisionRepository;
public UserService(UserRevisionRepository userRevisionRepository) {
this.userRevisionRepository = userRevisionRepository;
}
public List<Revision<Integer, User>> getRevisionsForUser(Long userId) {
return userRevisionRepository.findRevisions(userId);
}
}
在上述示例中,getRevisionsForUser
方法将返回给定用户ID的修订历史列表。
总结: 使用spring-data-envers查询嵌套对象的修订,需要引入依赖、标记需要修订的属性、创建修订历史查询接口,并在需要查询的地方使用该接口进行查询。
推荐的腾讯云相关产品和产品介绍链接地址:
腾讯云存储专题直播
腾讯云存储知识小课堂
DBTalk
云+社区技术沙龙[第14期]
开箱吧腾讯云
Elastic 中国开发者大会
第135届广交会企业系列专题培训
企业创新在线学堂
腾讯云存储知识小课堂
T-Day
Elastic Meetup Online 第三期
领取专属 10元无门槛券
手把手带您无忧上云