最近在使用shiro做权限管理模块时,使用的时user(用户)-role(角色)-resource(资源)模式,其中user-role 是多对多,role-resource 也是多对多。但是在使用spring data jpa 进行关联映射数据库时,报错: Cannot add foreign key constraint。最后我这里产生错误的的原因是 reource 表中主键ID类型是 bigint , 而role-resource 关联表中的resource_id 是int型,所以报错。
其实在使用搭配spring data jpa 时,我resource 实体类中设置的主键ID是 Integer 类型,可是我的resource(资源)表是从其他地方copy来的,里面的主键ID是bigint类型,所以导致在使用 @ManyToMany 注解时,映射的resource主键ID 和关联表中的resource_id 类型不匹配。报错。
这是我的出现问题的原因,在网上还找到了其他的一些原因,可参考: http://blog.csdn.net/yiwangxiblog/article/details/52269527