如何使用JPA/Hibernate在MySQL中存储多值映射

如何使用JPA/Hibernate在MySQL中存储多值映射,hibernate,jpa,orm,spring-data-jpa,spring-data,Hibernate,Jpa,Orm,Spring Data Jpa,Spring Data,我对JPA/Hibernate非常陌生。在我的应用程序中,我使用的是Spring数据JPA。我需要在Mysql数据库中存储多值映射。我发现了仅基于Map的示例,但没有基于MultiValueMap的示例 首先,可以在MySQL数据库中存储多值映射吗? 其次,如果有人给我看上面的一些好例子,我会很高兴。您可以通过这种方式将Map存储为Set @Entity public class Entity { //... @OneToMany(cascade = CascadeType.AL

我对JPA/Hibernate非常陌生。在我的应用程序中,我使用的是Spring数据JPA。我需要在Mysql数据库中存储多值映射。我发现了仅基于Map的示例,但没有基于MultiValueMap的示例

首先,可以在MySQL数据库中存储多值映射吗?

其次,如果有人给我看上面的一些好例子,我会很高兴。

您可以通过这种方式将
Map
存储为
Set

@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>();
}
@实体
公共类实体{
//...
@OneToMany(cascade=CascadeType.ALL,orphan=true)
@JoinColumn(name=“entity\u id”)
private Set multiValueMap=new ArrayList();
}
@实体
公共类多值映射项{
私钥;
@元素集合
私有列表值=新的ArrayList();
}
在实体类中,对每个
Map.Entry使用@OneToMany单向关系
并将
@ElementCollection
用于每个地图条目的
列表

要了解@OneToMany单向,请参阅和 要了解@ElementCollection,请参阅


对于
设置
映射
对话,请参见

它取决于您想要如何存储它。将多值映射视为Map@Eklavya我知道什么是多值映射,但我不知道如何编写HIbnernate代码将其存储在DB中,任何示例或示例代码都会对我有所帮助。我发布了一个示例,您尝试过这个解决方案吗?