Java JPA 2:如何使用地图<;字符串,Employee>;在实体之间的单一关系中

Java JPA 2:如何使用地图<;字符串,Employee>;在实体之间的单一关系中,java,hibernate,exception,jpa,jpa-2.0,Java,Hibernate,Exception,Jpa,Jpa 2.0,当我试图在实体之间的一对多关系中使用Map时,我面临着这个问题。当我尝试在映射中插入数据时,出现以下异常抛出 线程“main”org.hibernate.HibernateException中的异常:集合的索引列为空 请解释这个例外,并给我一个在关系中使用Map的小例子 这里有一个很好的解释: 对于JPA2,我引述: JPA2.0允许一个映射,其中键不是要持久化的目标对象的一部分。映射键可以是以下任一项: 基本值,存储在目标表或联接表中 嵌入对象,存储在目标表或联接表中 另一实体的外键,存储

当我试图在实体之间的一对多关系中使用Map时,我面临着这个问题。当我尝试在映射中插入数据时,出现以下异常抛出

线程“main”org.hibernate.HibernateException中的异常:集合的索引列为空


请解释这个例外,并给我一个在关系中使用
Map
的小例子

这里有一个很好的解释:

对于JPA2,我引述:

JPA2.0允许一个映射,其中键不是要持久化的目标对象的一部分。映射键可以是以下任一项:

  • 基本值,存储在目标表或联接表中
  • 嵌入对象,存储在目标表或联接表中
  • 另一实体的外键,存储在目标表或联接表中

你能解释一下,为什么你用
Map
而不是
Set
?事实上,我已经为OCE-JPA认证做好了准备。地图什么时候是“关系”的?对不起,这是我的错误,在关系地图中。请给我一些小例子如何使用这个,并使用Map插入元素。当我尝试使用
@MapKey
注释时,程序正在运行,不需要在映射中添加元素,但是
@MapKeyColumn
注释有什么问题。