Json 前端hibernate映射中的动态属性

Json 前端hibernate映射中的动态属性,json,angular,hibernate,spring-boot,orm,Json,Angular,Hibernate,Spring Boot,Orm,我正在尝试使用SpringBoot、Hibernate和Angular将JSON数据插入数据库。此JSON数据中的属性名在编译时未知 我们是否有可能使用ORM插入此数据?您可以使用@jsonanystetter。此装饰器允许您在模型类中定义一个方法,该方法将接收无法识别的字段。序列化它们并将它们写入另一个字段。稍后,使用@JsonAnyGetter读取数据 伪代码: @ElementCollection @CollectionTable(name = "table") @MapKey

我正在尝试使用SpringBoot、Hibernate和Angular将JSON数据插入数据库。此JSON数据中的属性名在编译时未知


我们是否有可能使用ORM插入此数据?

您可以使用@jsonanystetter。此装饰器允许您在模型类中定义一个方法,该方法将接收无法识别的字段。序列化它们并将它们写入另一个字段。稍后,使用@JsonAnyGetter读取数据

伪代码:

  @ElementCollection
  @CollectionTable(name = "table")
  @MapKeyColumn(name = "key")
  @Column(name = "value")
  @JsonIgnore
  private Map<String, String> any;
  .
  .
  @JsonAnySetter
  public void setAny(String name, String value) {
    any.put(name, value);
  }
  .
  .
  @JsonAnyGetter
  public Map<String, Object> getAny() {
    return any;
  }    
@ElementCollection
@CollectionTable(name=“table”)
@MapKeyColumn(name=“key”)
@列(name=“value”)
@杰索尼奥雷
任何私人地图;
.
.
@JSONANYSETER
public void setAny(字符串名称、字符串值){
any.put(名称、值);
}
.
.
@JsonAnyGetter
公共地图getAny(){
退回任何文件;
}    

我要求表的列名将是JSON对象中的键,键的每个值都是表的对应值…表将已经在数据库中。我必须使用JPA和hibernate插入数据。那么是否有可能在POJO类中使用动态属性?是的,这是可能的。在数据库中,与实体关联的表将保持不变,但需要一个辅助表来存储动态属性(使用
@CollectionTable
注释查看
映射任何
)。