【问题标题】:Pass Spring datasource to Javers to Audit DTOs将 Spring 数据源传递给 Javers 以审核 DTO
【发布时间】:2019-08-27 20:37:42
【问题描述】:

在我的 Spring Boot 应用程序中,我想审计 DTO 而不是实体,并将审计逻辑移动到公共库,该库将具有 @EnableAudit 注释以在方法级别审计 DTO。如果我使用 JaversBuilder.javers().build();在公共库中,我将无法提交数据,因为它不知道任何数据源。

我想在我的应用程序中创建 Javers 实例并将数据源传递给它,然后将 Javers 实例传递给公共库以执行提交。 Spring boot 应用程序中是否有创建 Javers 实例并将数据源关联到它,这将在提交时使用?

【问题讨论】:

    标签: spring javers


    【解决方案1】:

    如果您使用javers-spring-boot-starter,您将获得一个创建为 Spring bean 的 Javers 实例。它将连接到您的数据库并可以使用。见https://javers.org/documentation/spring-boot-integration/

    【讨论】:

    • 感谢您的回复。我能够解决这个问题。Javers 是否也为支持 DTO 而不仅仅是实体的审计而构建?在我们的应用程序中,我们正在尝试审核 DTO 更扁平的结构,我能够做到这一点,但它没有让我选择让父子关系根据父 ID 获取所有子记录的历史记录。此外,对于如何在 Javers 中审核字段级别更新以及不更新完整的 DTO/实体,还没有找到任何解决方案。
    • 我不明白你的问题。 DTO 只是一个对象。您可以将其映射到 Javers Entity 或 ValueObject。
    • 是的,我可以直接提交 dto 并对其进行审核。但是,如果我对一个或 2 个字段进行部分更新并且没有传递完整的对象 Javers 将所有缺少的字段视为更改并将其放入更改的字段列中。我如何告诉 Javers 部分更新并且只更改了 1 个字段?
    • 你不能,没有这样的功能。我对 DTO 的个人看法 - 它们很杂乱,摆脱它们,事情会变得更简单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多