zoukankan      html  css  js  c++  java
  • (十五)Hibernate中的多表操作(5):双向多对多

    • 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<RoleBean> roleSet = new HashSet<RoleBean>();
    
        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<RoleBean> getRoleSet() {
            return roleSet;
        }
    
        public void setRoleSet(Set<RoleBean> 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<MenuBean> menuSet = new HashSet<MenuBean>();
    
        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<MenuBean> getMenuSet() {
            return menuSet;
        }
    
        public void setMenuSet(Set<MenuBean> menuSet) {
            this.menuSet = menuSet;
        }
    
    }
    • 添加到总配置文件即可实现。
  • 相关阅读:
    BZOJ 1578: [Usaco2009 Feb]Stock Market 股票市场( 背包dp )
    BZOJ 3315: [Usaco2013 Nov]Pogo-Cow( dp )
    BZOJ 3477: [Usaco2014 Mar]Sabotage( 二分答案 )
    BZOJ 2427: [HAOI2010]软件安装( dp )
    BZOJ 3211: 花神游历各国( 线段树 )
    POJ 2528 线段树 + 离散化
    POJ 1151 Atlantis 线段树+离散化+扫描线
    POJ1177 Picture 线段树+离散化+扫描线
    BZOJ1016: [JSOI2008]最小生成树计数
    POJ2104 K-th Number 划分树 模板题啊
  • 原文地址:https://www.cnblogs.com/shyroke/p/6904829.html
Copyright © 2011-2022 走看看