hibernate多对多注解配置
角色 实体类
/*Role.java*/
@ManyToMany(mappedBy = "roles",fetch = FetchType.LAZY)
Set<User> users = new TreeSet<>();
用户 实体类
/*User.java*/
@ManyToMany(fetch = FetchType.LAZY)
private Set<Role> roles = new TreeSet<>();
角色 DAO 实现类
该方法实现通过一组角色id删除角色 , 在删除之前从拥有该角色的用户中删除该角色
/*RoleDaoImpl.java*/
@Override
public boolean deleteRolesByIdList(List<String> idList) {
Session session = factory.getCurrentSession();
idList.stream().map(this::getRoleById).forEach(r -> {
r.getUsers().stream().forEach(u -> u.getRoles().remove(r));
session.delete(r);
});
return true;