我将实体用作地图的键,如下所示。使用@MapKeyJoinColumn批注,我可以指定作为地图键的列的名称。这对我在Hibernate上起作用,不确定其他JPA实现会做什么,但是确实值得尝试。
@ElementCollection
@CollectionTable(name="breed_descriptions", joinColumns={ @JoinColumn(name="breed") })
@Column(name="description")
@MapKeyJoinColumn(name="language")
private Map<Language, String> descriptions = new HashMap<>();