java - 为什么 Javers 将我的审计实体的 ID 存储在引号中?
问题描述
我com.example.TaskSupplier
通过注释相应的 Spring Data 存储库来审计对 Javers 实体的更改
@JaversSpringDataAuditable
public interface TaskSupplierRepository extends CrudRepository<TaskSupplier, String> {
}
这个实体的主键是一个 UUID,所以我可以检索一个实例
select * from task_supplier where id = 'f463d538-ceb0-498b-a20b-2bb65286d200';
但是,该实例的 Javersjv_global_id
表中的条目将 ID 括在引号中,因此为了从该表中检索相应的行,我必须执行
select * from jv_global_id
where type_name = 'com.sourcespace.bidsengine.model.TaskSupplier'
and local_id = '"f463d538-ceb0-498b-a20b-2bb65286d200"';
这是故意的还是错误的?当上面没有引号的查询无法检索任何内容时,我感到很困惑。我正在使用 Postgres、Javers 5.14.0 和 Spring Boot 2.4.2
解决方案
这是故意的,它是 JSON 类型而不是 String 类型。本地 ID 可以是 Java 中的任何类型,也可以是值对象,因此它被序列化为 JSON。
推荐阅读
- python - 使用 Hive/Pyspark 的模糊列引用
- google-sheets - 我需要谷歌助手才能填写谷歌表格
- python - 多次将结果从选项菜单添加到标签
- python - 在 Flask 的动态路由中格式化回调参数
- django - Excel 文件作为 Django Rest 框架中的序列化程序响应
- amazon-web-services - ECS 服务上的所有任务都卡在 PROVISIONING 状态
- c# - asp.net core / html - 在加载页面上的每个图像之前,href 不起作用
- android - 每 1 分钟显示一次通知 Android
- android - Android Studio 添加库但看不到类
- view - 背包视图仍在使用吗?