Столбец типа Map в таблице springBoot - PullRequest
1 голос
/ 19 июня 2019

У меня есть таблица при весенней загрузке, в которой я хочу иметь столбец типа Карты. Ниже модель

@Entity
@Table(name = "media")
public class Media {

@NotBlank
private String url;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;

    @ElementCollection
@CollectionTable(name="metaData",joinColumns=@JoinColumn(name="media_id"))
Map<String, Object> metaData= new HashMap<>();

}

Я получаю ошибку для типа метаданных. Ошибка «Отображение элемента коллекции имеет неправильный номер метаданных столбца.

1 Ответ

0 голосов
/ 19 июня 2019

Вам необходимо определить, какой должна быть таблица сопоставления.

@ElementCollection
@CollectionTable(name="media_meta_data",joinColumns=@JoinColumn(name="media_id"))
@MapKeyColumn(name="meta_key")
@Column(name="meta_value")
Map<String, Object> metaData= new HashMap<>();

MapKeyColumn аннотация определяет столбец в media_meta_data, соответствующий ключам карты.

Column аннотация определяет столбец в media_meta_data, соответствующий значениям карты.

И есть еще один ключ для связи с моделью Media в объединяемой таблице с именем media_id, который вы определяете в аннотации CollectionTable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...