【发布时间】:2018-04-12 19:55:10
【问题描述】:
有什么办法可以同时保留一个实体和它的地图吗?
例如这个例子
public class Test {
private @Id @GeneratedValue(strategy = AUTO) Long id;
private String name;
@ElementCollection(targetClass = Long.class)
@CollectionTable(name = "test1_id")
@MapKeyColumn(name = "test_id")
@Column(name = "test")
private Map<Long, Long> map = new HashMap<>();
}
所以当我执行test.getMap().put(1L, 2L) 然后testRepository.save(test) 时,它会保存实体和地图?
【问题讨论】:
-
你到底想做什么?你想做一个外键约束还是?是的,有办法,你能解释一下你想要实现的目标吗
-
我想在保存
test实体时将键和值保存在test1_id表中 -
您不能将
Map实现直接保存到数据库中,您可以创建2 个差异列,1 个用于Map键,1 个用于Map值 -
您的 JPA 提供者将能够将 Map 保存在单独的表中,是的...具有 3 列(FK 返回所有者、键、值)。问题是?
标签: java jpa spring-data-jpa