Hibernate @ManyToMany注释支持哪些集合



我在集合上使用了@ManyToMany注释,它工作正常。

@ManyToMany
@JoinTable(name="stud_course_map",joinColumns={@JoinColumn(name="stud_id ")}, inverseJoinColumns={@JoinColumn(name="course_id")} )
public Set<Course> getEnrolledCourses() {
    return enrolledCourses;
}

当我使用 ArrayList 而不是 Set 时,它会引发异常:

org.hibernate.AnnotationException:非法尝试映射非 作为@OneToMany、@ManyToMany或@CollectionOfElements集合: com.kaushik.winnersoft.data.Student.enrolledCourses

不支持ArrayList吗?@ManyToMany注释支持哪些所有集合?

支持的接口包括:

java.util.Set
java.util.List
java.util.Collection

您得到异常是因为您使用了其中一个接口的具体实现。始终使用上面给出的接口定义@ManyToMany@OneToMany,你会没事的。

ArrayList 受支持的,但你必须这样写它:

private List<User> users = new ArrayList<>();

而不是

private ArrayList<User> users = new ArrayList<>(); //gives an error

最新更新