Атрибуты Dynami c в отображении гибернации из внешнего интерфейса - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь вставить данные JSON в нашу базу данных с помощью Spring Boot, Hibernate и Angular. Имя атрибута в этих JSON данных неизвестно во время компиляции.

Есть ли возможность использовать ORM для вставки этих данных?

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете использовать @JsonAnySetter. Этот декоратор позволяет вам определить метод в классе модели, который будет получать нераспознанные поля. Сериализируйте их и запишите в другое поле. Позже используйте @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;
  }    
...