JPA Map映射到3列的连接表

时间:2017-05-28 12:07:59

标签: java mysql jpa

我有一个由连接表映射的列表。我需要做的是制作&#34;布局&#34;的组合。和&#39;观点&#39;不是唯一的,也有索引。我想要做的是创建一个Map<Integer, View>,并以某种方式使联接表有第三列“id”#39;。会发生什么是获取该布局的视图,并使用连接表中的id作为地图中的关键字填充它们。

知道如何做到这一点,或者对我需要的东西更好的想法吗?

@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(
    name = "layout_view",
    joinColumns = {@JoinColumn(name = "layout_id", nullable = false)},
    inverseJoinColumns = {@JoinColumn(name = "view_id", nullable = false)}
)
private List<View> views;

我的想象:

@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(
    name = "layout_view",
    joinColumns = {@JoinColumn(name = "layout_id", nullable = false)},
    inverseJoinColumns = {@JoinColumn(name = "view_id", nullable = false)}
    //some code for third column and populating it as keys
)
private Map<Integer, View> views;

1 个答案:

答案 0 :(得分:1)

您正在使用List,已经可以为布局创建多个相同的视图。

要保留(并能够更改)订单,请参阅OrderColumnHibernate documentation about ordered lists

相同的文档还描述了如何使用地图实现原始想法,如果你真的想要它。