异常很简单,它说: 非法尝试将非集合映射为@ OneToMany,@ ManyToMany或@CollectionOfElements ,因此原因很明显,如果我们看一下Hibernate 文档,它会明确指出:
根据要求,必须将持久的集合值字段声明为接口类型(请参见示例7.2,“使用@OneToMany和@JoinColumn的集合映射”)。实际的界面可能是java.util.Set
,java.util.Collection
,java.util.List
,java.util.Map
,java.util.sortedSet
,java.util.sortedMap
…
而你使用 是一个实现 的都Set<E>
和SortedSet<E>
接口。因此,您的实际映射无法使用TreeSet
,您应该使用Set<CoachGroup>
而不是TreeSet<CoachGroup>
:
private Set<CoachGroup> coachGroups = new HashSet<CoachGroup>();