zoukankan      html  css  js  c++  java
  • 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;
        }
    
    }
  • 相关阅读:
    Android TouchEvent 分发流程
    python基础7之python中常用的模块的总结
    C# 压缩数据传输
    C# winFrom 加载BMP 底图
    使用jQuery Ajax功能的时候需要注意的一个问题
    jQuery DOM的操作
    C# CookieExtension 使用Cookie的扩展工具类
    Web Service测试工具小汇 转
    C# 把DT 的数据转换成 list<Model> EntityByEmit
    Web下 MD5 加密与解密
  • 原文地址:https://www.cnblogs.com/volare/p/3944812.html
Copyright © 2011-2022 走看看