hibernate多对多的配法(xml文件)
来源:互联网 发布:怎样在淘宝里开网店 编辑:程序博客网 时间:2024/06/18 04:32
hibernate的多对多是用一个中间表 来实现的,也就是两个多对一,来实现多对多,配置的时候有两种配法,第一种就是直接把中间表省略,就配两个表,第二种是配置三个表,因为两个表容易配置,且易懂,所以市面上大部分都是用的两个表来配置,这里只写两个的配置方法(省略中间表)
角色和权限的多对多关系
角色表实体bean:
package com.sxt.beans;import java.util.HashSet;import java.util.Set;/** * TRole entity. @author MyEclipse Persistence Tools *///角色表//和权限表是多对多 的关系public class Role implements java.io.Serializable { private Integer roleld; private String roleName; //因为是多对多关系,所以角色表要有一个权限表的集合 private Set<Right> rights = new HashSet<Right>(); public Integer getRoleld() { return roleld; } public void setRoleld(Integer roleld) { this.roleld = roleld; } public String getRoleName() { return roleName; } public void setRoleName(String roleName) { this.roleName = roleName; } public Set<Right> getRights() { return rights; } public void setRights(Set<Right> rights) { this.rights = rights; } public Role() { }}
权限表实体bean:
package com.sxt.beans;import java.util.HashSet;import java.util.Set;/** * TRight entity. @author MyEclipse Persistence Tools *///权限表public class Right implements java.io.Serializable { private Integer rightld; private String rightName; //和角色表是多对多的关系,所以这个要配置一个角色表的set集合 private Set<Role> roles = new HashSet<Role>(); public Set<Role> getRoles() { return roles; } public void setRoles(Set<Role> roles) { this.roles = roles; } public Right() { } public Integer getRightld() { return rightld; } public void setRightld(Integer rightld) { this.rightld = rightld; } public String getRightName() { return rightName; } public void setRightName(String rightName) { this.rightName = rightName; }}
配置角色表的xml:Role.hbm.xml
<?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.sxt.beans.Role" table="t_role"> <id name="roleld"> <generator class="identity"></generator> </id> <property name="roleName"></property> <!-- 和权限表的多对多关系 --> <!-- rights是这个表中的set集合的名称 table中间表的名称 cascade(可不写,但多对多一般在两个多中要写一个,这样做级联保存的时候更加常用些)是有哪些级联操作,all是全部,save-update是保存和修改(常用),delete是删除 --> <set name="rights" table="t_role_right" cascade="all"> <!-- 这个实体的自增长id --> <key column="roleld"></key> <!-- class所对应的多的bean的地址 column对应的自增长的id --> <many-to-many class="com.sxt.beans.Right" column="rightld"></many-to-many> </set> </class></hibernate-mapping>
配置权限表的xml:Right.hbm.xml
<?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.sxt.beans.Right" table="t_right"> <id name="rightld"> <generator class="identity"></generator> </id> <property name="rightName"></property> <!-- 和角色表的多对多关系 --> <!-- name这个xml对应的bean里面的设置的角色的集合 table中间表的表名--> <set name="roles" table="t_role_right"> <!-- column这个xml所对应的bean的表的自增长字段 --> <key column="rightld"></key> <!-- class所对应的多的bean的地址 column所对应多的bean的表的自增长id --> <many-to-many class="com.sxt.beans.Role" column="roleld"></many-to-many> </set> </class></hibernate-mapping>
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><!-- 引入头部文件 --><!-- 这个是hibernate的配置文件 --> <!-- 配置会话工厂 --><hibernate-configuration> <session-factory> <!-- 驱动名称 下面这个配置的是mysql的 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- URL --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sxt</property> <!-- 用户名 --> <property name="hibernate.connection.username">root</property> <!-- 密码 --> <property name="hibernate.connection.password">123456</property> <!--方言:hibernate根据方言类将对象"翻译"成相对于的sql语句,因为每个数据库的sql语句有的不同,所以这边声明用的哪个的数据库的哪个版本,然后会根据你的声明生成对应的sql语句 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 是否打印生成的sql语句 --> <property name="hibernate.show_sql">true</property> <!--引入配置文件--> <mapping resource="com/sxt/beans/Right.hbm.xml" /> <mapping resource="com/sxt/beans/Role.hbm.xml" /> </session-factory></hibernate-configuration>
这样多对多的xml文件就配置好了
阅读全文
0 0
- hibernate多对多的配法(xml文件)
- hibernate的一对多的写法或者多对一的写法(xml文件配法)
- hibernate+sqlserver2005连接对hibernate.cfg.xml文件的配置
- Hibernate多对一的双向关联xml配置
- 3.多对一(用户对组):hibernate.cfg.xml
- Hibernate一对多、多对多映射文件的编写
- mybatis 多对一,xml 文件的处理 学习总结
- 对hibernate多对多的理解
- Hibernate的多对一
- Hibernate的多对一
- 实体xml文件映射多对多
- MyBatis 多对多 XML文件
- hibernate.hbm.xml 中对多对多双向关联的 中inverse镜像的使用
- Hibernate中多对多的javabean文件的编写和映射文件的配置
- 【hibernate框架】多对多单向关联(XML实现)
- 【hibernate框架】多对多双向关联(XML实现)
- Hibernate多对多双向关联(xml配置)
- Hibernate多对一双向关联(xml配置)
- 机房UML图
- 【MFC】MFC工程创建控制台打印Log消息
- CTEX安装教程与注意事项
- Response
- 使用virtual box遇到的问题
- hibernate多对多的配法(xml文件)
- bzoj 2761: [JLOI2011]不重复数字
- Android 仿京东【购物车】包含MVP.网络拦截器.防内存泄露...
- 3. x86 寄存器
- Spring 注解----- 开启Annotation <context:annotation-config> 和 <context:component-scan>诠释及区别
- c++中继承与组合
- 一款适合练手的壁纸应用
- 高级Java程序员要具备哪些知识
- maven多模块项目