问题#1:
我有三张桌子; User,UserRole和UserRoleRelationships(连接表). UserRole表包含我要与用户关联的所有用户角色.当我插入新用户时,我想添加新用户并在连接表中添加新关联.现在,当我运行查询以插入新用户时:
IWUser iwUser = new IWUser();
iwUser.setUsername("username");
iwUser.setFullName("fullName");
iwUser.setEmail("email");
iwUser.setPassword("password");
iwUser.setPrivatephone("55555");
iwUser.setWorkphone("777");
Set roleList = new HashSet();
IWUserRole iwUserRole = new IWUserRole();
iwUserRole.setRole("ROLE_USER");
roleList.add(iwUserRole);
iwUser.setUserRole(roleList);
iwUserManagementService.saveOrUpdate(iwUser);
hibernate正在运行以下查询:
Hibernate: insert into dbo.Users (Username, Password, Email, Workphone, Privatephone, FullName) values (?, ?, ?, ?, ?, ?)
Hibernate: insert into dbo.UserRoles (Role) values (?)
Hibernate: insert into UserRoleRelationships (UserId, RoleId) values (?, ?)
我的hibernate映射看起来像:
IWUser.hbm.xml:
IWUserRole.hbm.xml:
如何让hibernate在连接表中保存具有现有用户角色的新用户?
问题#2:
当我更新用户时,hibernate删除连接表中的关系.我怎么能避免这个?