Таким способом вы можете сохранить Map<K, List<V>>
как Set<Map.Entry<K, List<V>>>
.
@Entity
public class Entity {
//...
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "entity_id")
private Set<MultiValueMapEntry> multiValueMap = new ArrayList<>();
}
@Entity
public class MultiValueMapEntry {
private String key;
@ElementCollection
private List<String> values = new ArrayList<String>();
}
В классе Entity используйте @OneToMany Однонаправленное отношение для каждого Map.Entry<K, List<V>>
и используйте @ElementCollection
для List<V>
каждой карты. entry.
Чтобы узнать о @OneToMany Unidirectional, см. здесь и узнать о @ElementCollection см. здесь
И для Set<Map.Entry<K, List<V>>>
до Map<K, List<V>>
разговор см. здесь