我还是JPA(和Hibernate,我正在使用它作为我的提供者)的新手,所以也许这不能做,但无论如何......
请考虑以下代码:
@Entity
class Root {
@Id
private long id;
private String name;
@ElementCollection
private Map<ResourceType, Resource> resources;
...
}
@Entity
class ResourceType {
@Id
private long id;
private String name;
}
@Embeddable
class Resource {
private ResourceType resourceType;
private long value;
}
在数据库中,有一个收集表'Root_resources',用于存储地图的值,但资源类型出现两次(实际上,资源类型ID有),一次作为地图的KEY,并且曾作为价值的一部分。
有没有一种方法,比如说@MapKey
注释,表示该键是值的一列(即嵌入的)?
答案 0 :(得分:0)
我认为你所要求的是:
@MapKeyJoinColumn("RESOURCE_TYPE_ID")
然后还为可嵌入的资源类型指定FK映射的列名。