Есть 3 таблицы:
customer(id, name),
settings(id, name, value) связаны между собой через
customer_settings(customer_id, setting_id)
Есть 2 класса:
Customer,
Setting мапяься к одноименным таблицам.
Хочу чтобы кастомер имел мапу настоек (
Customer.getSettings().get("setting1").getValue();), но чего-то не могу смапить. Если Set — идет на ура:
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "settings_ssl", joinColumns = {@JoinColumn(name = "customer_id")}, inverseJoinColumns = {@JoinColumn(name = "setting_id")})
public Set<Stting> getSettings() {...}
Пробовал после аннотаций сета добавлять
@MapKey(name = "name"), но поведение какое-то неадекватное, сохраняет под именем первой проперти только одну последнюю.
Вродебы в поздних версиях Hibernate это делается через
@MapKeyJoinColumn, но в 3.4 этой аннотации нет.