利用hibernate解决多对多的问题1建立实体多对多关系Manytomany,利用hibernate去维护多对多关系,但是hibernate无提供中间表操作。
2在1的基础上,建立中间表,利用一对多关系。这样可以在中间表添加其他属性,也可以利用hibernate多对多去维护EG:学生:ID,name学科:ID,classname中间表:sid,cid,SCOREhibernate:@MANYTOMANYStudent,Class_tb@ManyToOnescore,eg2:用户,会议多对多关系,中间表记录参加会议的信息会议<?xmlversion="1.0"encoding="ISO-8859-1"?> 举例说明:三张表t_userseoles是中间表、其他的t_user和t_role UsersRoles.hbm.xml User.hbm.xml 展开举例说明:三张表t_userseoles是中间表、其他的t_user和t_role UsersRoles.hbm.xml User.hbm.xml Role.hbm.xml 就是说只要映射关系就行了,不用特别的设置,这张表要自己建立出来,不是自动生成的收起 如果你要在中间表中加其他字段,就只能新加一个表一个类,两个类是不能实现的。我原来做的类似你说的,把有用的给你写出来了。大概这个意思,简单明了,希望你能看懂 T_Module目录表;T_Role角色表;ACL权限表(一个角色可以看到多个目录,一个目录可以被多个目录看到) **ClassModule classModule{ privateintid; privateStringname; privateStringurl; privateintorderNo; privateStringsn; //getterandsetter **ClassROLE classRole{ privateintid; privateStringname; //getterandsetter **ClassACL classACL{ privateintid; privateStringprincipalType; privateintprincipalId; privateintmoduleId; privateintaclState; //setterandgetter **moduleXML <idname="id"> <generatorclass="native"/> </id> <propertyname="name"/> <propertyname="url"/> <propertyname="orderNo"/> <propertyname="sn"/> **RoleXML <idname="id"> <generatorclass="native"/> </id> <propertyname="name"/> **ACLXML <idname="id"> <generatorclass="native"/> </id> <propertyname="principalType"/> <propertyname="principalId"/> <propertyname="moduleId"/> <propertyname="aclState"/> for(Integerr:resadd){ resources.setResourceId(r); auth.().add(resources); } 改成 for(Integerr:resadd){ Resourceresources=newResource();//不知道你resources是什么类型的,改成你自己的类型就可以 resources.setResourceId(r); auth.().add(resources); } for(Integerr:resadd){resources.setResourceId(r);auth.().add(resources);}改成for(Integerr:resadd){Resourceresources=newResource();//不知道你resources是什么类型的,改成你自己的类型就可以resources.setResourceId(r);auth.().add(resources);}。hibernate多对多中间表篇2
hibernate多对多中间表有其他的字段的配置方法怎么插入数据篇3
hibernate多对多批量插入中间表篇4
hibernate多对多批量插入中间表篇5