Hibernate学习笔记5
学习课程:
多对多关联映射——单向 |
Hibernate_10_ManyToMany_1 |
多对多关联映射——双向 |
Hibernate_09_ManyToMany_2 |
学习内容:
多对多关联映射
单向对象模型(User---->Role):
映射文件User.hbm.xml:
-
-
<class name="User" table="t_users"><id name="id" column="name_id"><generator class="native" /></id><property name="name" /><set name="roles" table="t_user_role"><key column="user_id" /><many-to-many class="Role" column="role_id"/></set></class>
|
映射文件Role.hbm.xml都是普通属性,内容简单不予给出。 |
双向对象模型:
映射文件Role.hbm.xml
-
-
<class name="Role" table="t_roles"><id name="id" column="name_id"><generator class="native" /></id><property name="name" /><set name="users" table="t_user_role"><key column="role_id"/><many-to-many class="User" column="user_id" /></set></class>
|
只修改Role.hbm.xml映射文件即可 |
注:
table 属性值必须和单向关联中的table属性值一致 <key>中column属性值要与单向关联中的<many-to-many>标签中的column属性值一致 在<many-to-many>中的column属性值要与单向关联中<key>标签的column属性值一致 |
进行测试的方法,以及主要源代码:
testSave1() 向数据库中写入数据 方向: User---->Role |
-
-
Role r1 = new Role();r1.setName("网站构建人员");…………session.save(r1);session.save(r2);session.save(r3);User u1 = new User();u1.setName("何萍");Set<Role> u1Role = new HashSet<Role>();u1Role.add(r1);u1Role.add(r2);u1.setRoles(u1Role);…………session.save(u1);session.save(u2);session.save(u3);
|
testSave2() 向数据库中写入数据 方向: Role---->User |
-
-
User u1 = new User();u1.setName( "桂卫华" );…………session.save( u1 );session.save( u2 );session.save( u3 );Role r1 = new Role();r1.setName( "软件策划人员" );Set<User> r1User = new HashSet<User>();r1User.add( u1 );r1User.add( u2 );r1.setUsers( r1User );…………session.save( r1 );session.save( r2 );session.save( r3 );
|
testLoad1() 加载数据 方向 User---->Role |
-
-
User u2 = (User)session.get( User.class , 1 );System.out.println("u2.name: " + u2.getName());Set<Role> u2Role = u2.getRoles();for (Role r : u2Role) { System.out.println("u2.role: " + r.getName());}
|
testLoad2() 加载数据 方向: Role---->User |
-
-
Role r1 =(Role) session.get( Role.class , 1 );System.out.println( "r1.name: " + r1.getName() );Set<User> r1User = r1.getUsers();for( User u : r1User ){ System.out.println( "r1.user.name: " + u.getName() );}
|
文章来源: blog.csdn.net,作者:fengda2870,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/fengda2870/article/details/3300981
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
评论(0)