java - 如何获取可嵌入的更改?

标签 java hibernate spring-boot javers

我在 Spring Boot 中有一个带有嵌入式实体的实体。

现在,当我的嵌入实体发生更改并且我查询我的实体以获取更改时,这些更改不在更改列表中。

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TaskEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Embedded
    private LockSettingsEmbeddable lockSettings;
}

@Embeddable
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LockSettingsEmbeddable {
    private boolean locked;
    @Enumerated(EnumType.STRING)
    private TaskLock lockSetting;
}

List<Change> changes = javers.findChanges(QueryBuilder.byInstanceId(taskId, TaskEntity.class).build());
        List<Change> modifiableList = new ArrayList<>(changes);
        modifiableList.sort((o1, o2) -> -1 * o1.getCommitMetadata().get().getCommitDate().compareTo(o2.getCommitMetadata().get().getCommitDate()));

        return javers.getJsonConverter().toJson(modifiableList);

最佳答案

只需启用 withChildValueObject 过滤器,请参阅 https://javers.org/documentation/jql-examples/#child-value-objects-filter

关于java - 如何获取可嵌入的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53778442/

相关文章:

java - CAB 上的 Android 持久 gridview 选择器

java - org.hibernate.exception.SQLGrammarException : could not prepare statement; nested exception is javax. 持久性.PersistenceException

java - 使用实体的基类是个好主意吗?

java - List 为空时 Spring Boot 返回 204 No-Content

java - 初学者编码器 : Java (Processing) and Leap Motion Controller Tutorials?

Java 原语和原语包装器

java - hibernate 中的 boolean 列类型(可空 true)

java - ModelMapper:根据子类选择映射

java - ffmpeg 正在消耗 100% 的 CPU

java - 泽西 RESTful 服务,错误 500