使用地图保存实体

时间:2018-04-12 19:55:11

标签: java jpa spring-data-jpa

有没有办法可以同时保留一个实体和它的地图?

这个例子,例如

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)时,它会保存实体和地图吗?

1 个答案:

答案 0 :(得分:1)

也许你应该重构你的实体。我会在另一个实体中转换地图,其中包含两个long类型的字段。之后,我会用@OneToMany关系链接这两个实体。