【问题标题】:No revision data from repository with Spring Data Envers使用 Spring Data Envers 没有来自存储库的修订数据
【发布时间】:2022-01-21 20:32:09
【问题描述】:

根据我对数据库的监控,我已经实现了一个运行良好的 Spring Data JPA+Envers 存储库。

@SpringBootApplication
@EnableTransactionManagement
@EnableEnversRepositories
public class ToDoApplication {
    public static void main(String[] args) {
        SpringApplication.run(ToDoCloneApplication.class, args);
    }
}

@Entity @Table(name = "Todos")
@Audited(withModifiedFlag = true)
public class Todo {
    @Id @GeneratedValue
    private Long id;
    ...
    @Transient
    private RevisionMetadata<Integer> metadata; // not sure of what it's worth, always null anyway
}

public interface TodosRepository extends JpaRepository<Todo, Long>, RevisionRepository<Todo, Long, Integer> {
}

但我无法在我的测试中检索修订信息:

@DataJpaTest
@Slf4j
class TodoDomainTests {
@Autowired
private TodosRepository dao;
@Test
void tasksPersistence() {
    log.info("SETUP...");
    Todo todo = new Todo(...);
    log.info("PERSISTENCE...");
    todo = dao.save(todo);
    log.info("UPDATE...");
    todo.setContent("Oups! Program shift, everybody...");
    todo = dao.saveAndFlush(todo);
    // todo = dao.getById(todo.getId());
    assertFalse(dao.findRevisions(todo.getId()).isEmpty()); // TEST FAILURE
    dao.findAll().stream().mapToLong(Todo::getId)
        .forEach(id -> dao.findRevisions(id)
            .forEach(rv -> log.info("AVAILABLE REVISION: {} for {}", rv.getMetadata(), rv.getEntity())));
}}

我找不到这是结构问题还是测试环境问题。我会接受任何建议:-)

【问题讨论】:

    标签: spring-boot spring-data-jpa spring-data-envers


    【解决方案1】:

    嗯...显然只是一个测试问题:@SpringBootTest 解决了它:-(

    不过,元数据仍然为空

    【讨论】:

      猜你喜欢
      • 2020-11-25
      • 2010-10-28
      • 2016-10-20
      • 2019-04-09
      • 2017-12-05
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 2019-12-20
      相关资源
      最近更新 更多