可能是两个表之间没有设置级联
在你的User.hbm.xml中的set设置里加上:
<set name="role" inverse="true" cascade="all"table="T_ROLE"> 在你的Role.hbm.xml中的many-to-one里加上:
<many-to-one name="user" class="User" column="FK_USER_ID" not-null="true"/>
id里加上:
<id name="id" column="PK_ID" type="long" unsaved-value="0">
或者
<id name="id" column="PK_ID" type="string" unsaved-value="null">在保存的时候
user.getRole().add(role);
role.setUser(user);
getDao().saveUser(user);