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;

    }



}

 

你可能感兴趣的:(Hibernate)