У меня есть продукт объекта:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "product")
@MapKeyColumn(name="locale")
public Map<String,ProductNames> getProductNames() {
return this.productNames;
}
и объект с именем productNames, который содержит локализованные версии продукта
private int id;
private SkiProduct skiProduct;
private String locale;
private String text;
Я попробовал @MapKeyColumn
и @MapKey
аннотация.Сгенерированный SQL выглядит следующим образом:
select
productnam0_.product_id as product4_1_,
productnam0_.id as id1_,
productnam0_.mapkey as mapkey1_,
productnam0_.id as id231_0_,
productnam0_.locale as locale231_0_,
productnam0_.product_id as product4_231_0_,
productnam0_.text as text231_0_
from
product_names productnam0_
Мой вопрос заключается в том, как правильно настроить это отображение.Столбец mapkey в SQL-операторе приводит к SQL-Errormsg, поскольку его нет в db-таблице.
Type (ROW(id integer, locale char(2), text varchar(255), product_id integer)) not found.
РЕДАКТИРОВАТЬ: Javadoc говорит: «Если постоянное полеили свойство, отличное от первичного ключа, используется в качестве ключа карты, тогда ожидается, что с ним будет связано ограничение уникальности. "
Поэтому мне интересно, могу ли я использовать Карты для этого?