SpringJPA:映射java。util。映射到单个表
因此,基本上,我正在尝试为我的应用程序的全局、系统范围的配置实现一个简单的键值存储,为此,我想将整个java.util.Map
映射到数据库中的一个表?例如:
// initialization
globalConfig.put("property1", "130")
globalConfig.put("property2", "abc")
globalConfig.put("propertyXY", "0")
映射到:
全局配置:
| key | value |
|------------|-------|
| property1 | 130 |
| property2 | abc |
| propertyXY | 0 |
使用JPA/Hibernate是否有一种干净简单的方法来实现这一点
# 1 楼答案
如果这个映射与一个表对应,我认为这是您想要实现的,那么您需要加载所有条目并自己将其转换为映射。我不会把它放在数据层,最好是为此提供服务
如果您想为一个条目在列上存储映射,我认为您需要一个JSON字段,如这里描述的https://vladmihalcea.com/how-to-map-json-objects-using-generic-hibernate-types/或这里描述的https://bootify.io/docs/persist-json-with-spring-data-hibernate.html
# 2 楼答案
您必须将其映射为一个实体。大概是这样的:
如果您想要一个映射,则必须通过流操作将
List<GlobalConfig>
转换为Map<String, String>
,其大致如下所示: