关于hibernate级联添加记录的问题

现在有两个表,一个user表,一个userRole表。
userRole的一个属性列外键关联user的主键

现在在添加用户的时候,同时需要将用户的权限也保存进数据库

但是用户是新用户,所以在更新userRole的时候,又需要关联这个
还没有添加进数据库的用户。所有一直添加不了用户

这个问题该怎么来解决呀,要用hibernate的级联添加来实现

[b]问题补充:[/b]
能不能让hibernate自己来实现,只用一句saveOrUpdate(user),而不写在两个事物处理之中呢?
[b]问题补充:[/b]
user表(userid,username,userpassword)
userRole表(userRoleid,userid,roleid)
role表(roleid,rolename)

[b]user.hbm.xml[/b]















[b]userRole.hbm.xml[/b]













[b]问题补充:[/b]
改过,改了之后出现这个

Repeated column in mapping for entity: com.UserRole column: USERID (should be mapped with insert="false" update="false")

7个回答



你这个设置为false,有问题吧,那都不能插入关联用户的用户角色啊

新用户的话,你可以先把新用户插入数据库后提交事务,再把这个用户读取出来再更新userRole,
这样就要两个事务操作,

应该可以的,看你搞的一个user表,一个userRole表,的映射文件里是怎么写的
还有对应的类是怎么关联这两个对象

在你的ORM配置文件中,加上inverse="true" cascade="save"

你可以分成用户维护功能(只维护用户),角色维护(只维护角色),权限维护(只维护权限),角色权限维护(维护角色和权限关系),用户角色关系维护(只维护用户和角色)。这样分开维护就不会出现你这种问题。简单的权限也都是这么做的。

你的UserRole 类里面是不是也用注解进行了映射啊,
怎么会报Repeated column in mapping for entity:(重复列映射??)

兄弟你userrole的mapping 写的真乱……你能告诉我你的userrole里都有哪些属性吗?你这个映射是单向的一对多吗?还是多对多啊?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问