博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(十五)Hibernate中的多表操作(5):双向多对多
阅读量:5905 次
发布时间:2019-06-19

本文共 3260 字,大约阅读时间需要 10 分钟。

  • Hibernate的双向关联。
        对象之间可以相互读取。
        
        双向只针对读取的操作。对于增、删除、改的操作没有任何影响。

 案例 : 实现双向多对多

  • MenuBean.java
package bean;import java.io.Serializable;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.JoinTable;import javax.persistence.ManyToMany;import javax.persistence.Table;@Entity@Table(name = "menu")public class MenuBean implements Serializable {    @Id    private Integer menuid;    private String menuname;    @ManyToMany    @JoinTable(name = "role_menu",  //指定数据库中的中间表    joinColumns = @JoinColumn(name = "menu_id"),  //设置当前实体在中间表中的映射,也就是说在中间表中有一个字段叫menu_id,使它指向当前表的主键这里是menuid     inverseJoinColumns = @JoinColumn(name = "roleid")  //设置对方实体在中间中的映射,也就是说在中间表中有一个字段roleid,使它指向对方表的主键。     )    private Set
roleSet = new HashSet
(); public MenuBean(Integer menuid, String menuname) { super(); this.menuid = menuid; this.menuname = menuname; } public MenuBean() { super(); // TODO Auto-generated constructor stub } public Integer getMenuid() { return menuid; } public void setMenuid(Integer menuid) { this.menuid = menuid; } public String getMenuname() { return menuname; } public void setMenuname(String menuname) { this.menuname = menuname; } public Set
getRoleSet() { return roleSet; } public void setRoleSet(Set
roleSet) { this.roleSet = roleSet; }}
  • RoleBean.java
package bean;import java.io.Serializable;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.JoinTable;import javax.persistence.ManyToMany;import javax.persistence.Table;@Entity@Table(name = "role")public class RoleBean implements Serializable {    @Id    private Integer role_id;    private String role_name;    private String role_remark;    @ManyToMany    @JoinTable(name = "role_menu",     joinColumns = @JoinColumn(name = "roleid"),     inverseJoinColumns = @JoinColumn(name = "menu_id"))    private Set
menuSet = new HashSet
(); public RoleBean(Integer role_id, String role_name, String role_remark) { super(); this.role_id = role_id; this.role_name = role_name; this.role_remark = role_remark; } public RoleBean() { super(); // TODO Auto-generated constructor stub } public Integer getRole_id() { return role_id; } public void setRole_id(Integer role_id) { this.role_id = role_id; } public String getRole_name() { return role_name; } public void setRole_name(String role_name) { this.role_name = role_name; } public String getRole_remark() { return role_remark; } public void setRole_remark(String role_remark) { this.role_remark = role_remark; } public Set
getMenuSet() { return menuSet; } public void setMenuSet(Set
menuSet) { this.menuSet = menuSet; }}
  • 添加到总配置文件即可实现。

 

转载于:https://www.cnblogs.com/shyroke/p/6904829.html

你可能感兴趣的文章
APUE第15章学习扎记之程序的存储区布局试验
查看>>
ubuntu升级16.04 inter idea 中文输入法无效
查看>>
三目运算判断jsp脚本里面的值
查看>>
sshtunnel在本地访问云服务器mysql
查看>>
小蚂蚁学习APP接口开发(1)—— json方式封装通信接口
查看>>
我的友情链接
查看>>
CDN相关
查看>>
Tomcat的设置4——Tomcat的体系结构与设置基于端口号的虚拟主机
查看>>
三种判断端口存活的方法和链接200的判断方法
查看>>
我的友情链接
查看>>
ftp协议基础
查看>>
访问共享经常中断
查看>>
人生的交易
查看>>
MySql
查看>>
js时间戳与日期格式的相互转换
查看>>
sql server 下载安装标记
查看>>
Android学习6—单元测试的使用
查看>>
js运算符(运算符的结合性)
查看>>
idea 编译级别的设置
查看>>
内置对象Array的原型对象中添加方法
查看>>