码迷,mamicode.com
首页 > 系统相关 > 详细

hibernate联合主键注解配置

时间:2014-08-29 14:37:18      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   java   io   div   问题   log   sp   

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

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联合主键注解配置

标签:style   blog   color   java   io   div   问题   log   sp   

原文地址:http://www.cnblogs.com/volare/p/3944812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!