对于上述问题,我会说您的实体关系级联是错误的。请考虑以下因素:用户可以具有多个角色,但是系统中可以存在固定数量的角色。因此,来自
User实体的CASCADE
ALL
没有任何意义,因为的生命周期不
UserRoles应该取决于
User实体的生命周期。例如,当我们删除时
User,
UserRoles不应将其删除。
*仅当您传递已将主键设置为持久性的对象时,才会发生 *分离实体持久性 异常。
删除级联,您的问题将立即得到解决,您只需决定如何插入用户角色即可。据我说,应该有单独的功能。
也不要使用
ArrayList,使用
HashSet。
ArrayList允许重复。



