Я пытаюсь реализовать аудит сущностей в моем проекте Java Spring Boot, используя spring-data-envers . Все сущности создаются должным образом, но при выполнении запроса я наткнулся на кирпичную стену.
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
@Repository
public interface ParentRepository extends RevisionRepository<Parent, Long, Long>, JpaRepository<Parent, Long>
И аннотировал свой класс записи SpringBootApplication с помощью: @EnableJpaRepositories(repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean.class)
Я не смог найти какое-либо объяснение этого до сих пор, как заставить parentRepository получить то, что мне нужно?