如何将嵌套的 Json 对象值访问到 JPA 实体 Class
How to access nested Json Object Value into JPA Entity Class
我有这样的负载
{
"eventId":"ep9_0579af51",
"eventTime":"5/11/2022 5:50:58 PM",
"eventType":"UpdateTransaction",
"meta":{
"userId":"vkp",
"resourceType":"Transaction/DataDocs"
}
}
我需要将这个 json 字段映射到单个实体 class 。
@PostMapping(path = "/id", consumes = "application/json")
public ResponseEntity<ImportTrans> import(@RequestBody ImportTrans importTrans) {
return ResponseEntity.of(Optional.ofNullable(repository.save(importTrans););
}
@Table(name = "IMPORT_TRANS")
@Entity
public class ImportTrans implements Serializable {
@Id
private Long processId;// AutoGenerator
private String eventId;
private Date eventTime;
private String eventType;
private String userId; // I dont want create new class for meta . Is there any way i
//can access meta.userId in ImportTrans class.
private String resourceType;
}
如何在不为其创建单独的 class 的情况下从 ImportTrans
访问来自 meta
的数据?
您应该在到达控制器之前修改您的请求正文。
"You must consider the application performance factors on your own
before implementation"
选项 1. 使用 RequestBodyAdvice。
选项 2. 使用 Spring HandlerInterceptor。
方案3.使用AOP
选项 4. 使用 HTTP 过滤器。
以下解决方案仅在您使用单独的 DTO 时有效 class。
private Map<String, String> meta = new HashMap<>();
String userID = importTrans.getMeta().get("userId");
希望以上信息能解答您的问题。
我有这样的负载
{
"eventId":"ep9_0579af51",
"eventTime":"5/11/2022 5:50:58 PM",
"eventType":"UpdateTransaction",
"meta":{
"userId":"vkp",
"resourceType":"Transaction/DataDocs"
}
}
我需要将这个 json 字段映射到单个实体 class 。
@PostMapping(path = "/id", consumes = "application/json")
public ResponseEntity<ImportTrans> import(@RequestBody ImportTrans importTrans) {
return ResponseEntity.of(Optional.ofNullable(repository.save(importTrans););
}
@Table(name = "IMPORT_TRANS")
@Entity
public class ImportTrans implements Serializable {
@Id
private Long processId;// AutoGenerator
private String eventId;
private Date eventTime;
private String eventType;
private String userId; // I dont want create new class for meta . Is there any way i
//can access meta.userId in ImportTrans class.
private String resourceType;
}
如何在不为其创建单独的 class 的情况下从 ImportTrans
访问来自 meta
的数据?
您应该在到达控制器之前修改您的请求正文。
"You must consider the application performance factors on your own before implementation"
选项 1. 使用 RequestBodyAdvice。
选项 2. 使用 Spring HandlerInterceptor。
方案3.使用AOP
选项 4. 使用 HTTP 过滤器。
以下解决方案仅在您使用单独的 DTO 时有效 class。
private Map<String, String> meta = new HashMap<>();
String userID = importTrans.getMeta().get("userId");
希望以上信息能解答您的问题。