java - Hibernate @ManyToMany 注解支持哪些集合

标签 java hibernate jpa many-to-many

我在 Set 上使用了 @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: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: com.kaushik.winnersoft.data.Student.enrolledCourses

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

最佳答案

支持的接口(interface)有:

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

您收到异常是因为您使用了这些接口(interface)之一的具体实现。始终使用上面给出的接口(interface)定义 @ManyToMany@OneToMany 就可以了。

关于java - Hibernate @ManyToMany 注解支持哪些集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44157641/

相关文章:

java - matrix.multiply 返回 Nan

java - 使用列表参数将 HQL 查询转换为可执行的 SQL 查询

java - 无法运行 hibernate (无法加载请求的类)

java - Play框架持久单元

mysql - 在数据库 Play Framework jpa中插入初始数据

Java:只允许一个类实例化

java - 按功能打包好不好?

java - 我的返回 Optional 的方法不能以类似功能的方式使用

java - oracle.sql.ArrayDescriptor.createDescriptor 中的 ClassCastException

java - 无法提交 JPA 事务 : Transaction marked as rollbackOnly