• hibernate联合主键注解配置


    在网上看到好多方法,结果拿来用还是出现了一些问题。现在整理一下

    1、主键类

    import javax.persistence.Column;
    
    
    public class UserRoleUionPK implements java.io.Serializable {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        private String userId;
        private String roleId;
        
        
        /*public UserRoleUionPK() {
            super();
        }
    
        public UserRoleUionPK(String userId, String roleId) {
            this.userId = userId;
            this.roleId = roleId;
        }*/
        @Column(name="user_id")
        public String getUserId() {
            return userId;
        }
    
        public void setUserId(String userId) {
            this.userId = userId;
        }
        @Column(name="role_id")
        public String getRoleId() {
            return roleId;
        }
    
        public void setRoleId(String roleId) {
            this.roleId = roleId;
        }
        /*  @Override  
            public boolean equals(Object o) {  
                if(o instanceof UserRoleUionPK){  
                    UserRoleUionPK key = (UserRoleUionPK)o ;  
                    if(this.getUserId().equals(key.getUserId()) && this.getRoleId().equals(key.getRoleId())){  
                        return true ;  
                    }  
                }  
                return false ;  
            }  
              
            @Override  
            public int hashCode() {  
                return this.roleId.hashCode()+this.userId.hashCode();  
            }  */
    }

    网上有的说必须重写equals和hashcode,还有带参构造和无参构造,其实不然,我在项目中将其注释掉没有发现问题。

    我这边主要注重的一点是@Column注解,之前没有加入@Colunm一直报列名无效的问题。

    entity类

    import javax.persistence.EmbeddedId;
    import javax.persistence.Entity;
    import javax.persistence.Table;
    
    @Entity
    @Table(name = "sys_user_role")
    public class SysUserRole implements java.io.Serializable {
    
        private UserRoleUionPK uionPK;
    
        @EmbeddedId
        public UserRoleUionPK getUionPK() {
            return uionPK;
        }
    
        public void setUionPK(UserRoleUionPK uionPK) {
            this.uionPK = uionPK;
        }
    
    }

    2、主键类

    import javax.persistence.Column;
    
    public class UserRoleUionPK implements java.io.Serializable {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        private String userId;
        private String roleId;
    
        @Column(name = "user_id")
        public String getUserId() {
            return userId;
        }
    
        public void setUserId(String userId) {
            this.userId = userId;
        }
    
        @Column(name = "role_id")
        public String getRoleId() {
            return roleId;
        }
    
        public void setRoleId(String roleId) {
            this.roleId = roleId;
        }
        
    }

    entity类

    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.IdClass;
    import javax.persistence.Table;
    
    @Entity
    @Table(name = "sys_user_role")
    @IdClass(UserRoleUionPK.class)
    public class SysUserRole implements java.io.Serializable {
    
        
        private String userId;
        private String roleId;
        @Id
        public String getUserId() {
            return userId;
        }
        public void setUserId(String userId) {
            this.userId = userId;
        }
        @Id
        public String getRoleId() {
            return roleId;
        }
        public void setRoleId(String roleId) {
            this.roleId = roleId;
        }
    
    }
  • 相关阅读:
    pinpoint单机部署和集群部署
    MockServer工具Moco
    nGrinder介绍、编写脚本与执行(完整版)
    性能工具ngrinder3.5.5用户手册
    Pinpoint 安装部署
    pinpoint安装部署
    走进Java接口测试之简单快速的Mock Server Moco
    Mock工具介绍
    【Java/字符串处理】SpringUtils提供的重复字符串、固定长度左补右补空格的三函数
    【java/text file】将内容写入文本文件,按utf8存储的函数
  • 原文地址:https://www.cnblogs.com/volare/p/3944812.html
Copyright © 2020-2023  润新知