我正在尝试使用spring-data-envers在我的 Java Spring Boot 项目中实现实体审计。所有实体都按应有的方式创建,但是在执行查询时我遇到了障碍。
parentRepository.findRevisions(id).stream().map(Parent::getEntity).collect(Collectors.toList());
在此选择期间,存储库应该也从子实体获取信息,而不是我得到unable to find <child object> with {id}
.
根据我的实验 categoryId 正在 Category_Aud 表中搜索,而不是在具有所需数据的实际表中搜索。
代码片段:
@Data
@Entity
@Audited
@NoArgsConstructor
public class Parent {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Enumerated(EnumType.STRING)
private Status status;
@Enumerated(EnumType.STRING)
private Type requestType;
private String fullName;
@ManyToOne
@JoinColumn(name = "child_id")
private Child child;
}
@Data
@Entity
@Audited
@NoArgsConstructor
public class Child {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description;
}
我已经用 RevisionRepository 扩展了 Parent
@Repository
public interface ParentRepository extends RevisionRepository<Parent, Long, Long>, JpaRepository<Parent, Long>
并注释我的 SpringBootApplication 入口类:
@EnableJpaRepositories(repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean.class)
到目前为止我找不到任何解释,如何让 parentRepository 得到我需要的东西?