hibernate学习之多对多

来源:互联网 发布:怎么上传图片到淘宝 编辑:程序博客网 时间:2024/05/17 09:04

1.画图理解


2.执行步骤(用户和权限)

(1)创建实体类,在实体类中表示相互之间关系

package com.sq.entity;import java.util.HashSet;import java.util.Set;/** *@author sq * */public class Role {private String r_id;private String r_name;//表示一个权限可以有多个用户一起使用Set<User> users = new HashSet<User>();public Set<User> getUsers() {return users;}public void setUsers(Set<User> users) {this.users = users;}public String getR_id() {return r_id;}public void setR_id(String r_id) {this.r_id = r_id;}public String getR_name() {return r_name;}public void setR_name(String r_name) {this.r_name = r_name;}@Overridepublic String toString() {return "Role [r_id=" + r_id + ", r_name=" + r_name + "]";}}
package com.sq.entity;import java.util.HashSet;import java.util.Set;/** *@author sq * */public class User {private String u_id;private String u_name;private String u_password;//表示一个用户可以有多种权限Set<Role> users = new HashSet<Role>();public String getU_id() {return u_id;}public void setU_id(String u_id) {this.u_id = u_id;}public String getU_name() {return u_name;}public void setU_name(String u_name) {this.u_name = u_name;}public String getU_password() {return u_password;}public void setU_password(String u_password) {this.u_password = u_password;}@Overridepublic String toString() {return "User [u_id=" + u_id + ", u_name=" + u_name + ", u_password="+ u_password + "]";}}

(2)配置映射文件,在映射文件中表示多对多的关系
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.sq.entity.User" table="t_user"><id name="u_id"><generator class="uuid"></generator></id><property name="u_name"></property><property name="u_password"></property><!-- 在用户映射文件中表示多个权限name属性:set集合名称table:第三张表的名称 --><set name="roles" table="user_role"><!-- column:是指当前映射文件对应实体类在第三张表中外键名称 --><key column="u_id"></key><!-- class:集合实体类的全路劲column:集合实体类对应第三张表的外键 --><many-to-many class="com.sq.entity.Role" column="r_id"></many-to-many></set></class></hibernate-mapping>

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.sq.entity.Role" table="t_role"><id name="r_id"><generator class="uuid"></generator></id><property name="r_name"></property><!-- 在用户映射文件中表示多个权限name属性:set集合名称table:第三张表的名称 --><set name="users" table="user_role"><!-- column:是指当前映射文件对应实体类在第三张表中外键名称 --><key column="r_id"></key><!-- class:集合实体类的全路劲column:集合实体类对应第三张表的外键 --><many-to-many class="com.sq.entity.User" column="u_id"></many-to-many></set></class></hibernate-mapping>


原创粉丝点击