У меня есть объект сущности, который содержит две коллекции элементов как таковые:
@Entity
public class Report {
// Electronic transactions items map
@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "catElecItem_key", nullable = false)
@Cascade(value = { CascadeType.ALL })
public Map<Category, ReportItem> catElecItemMap;
// Branch transactions items map
@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "catBranchItem_key", nullable = false)
@Cascade(value = { CascadeType.ALL })
public Map<Category, ReportItem> catBranchItemMap;
}
При создании таблиц создается таблица с именем Report_ReportItem для сопоставления между Категория и сопоставленным ReportItem . Однако это не удается, так как при попытке сохранить карты enther * catElecItem_key * или * catBranchItem_key * будет иметь значение null.
Если я попытаюсь аннотировать с помощью nullable = true , таблица не будет создана, поскольку оба ключа используются как часть определения первичного ключа.
Можно ли указать для каждой коллекции использование отдельной таблицы?