首页 > 代码库 > hibernate联合主键注解配置
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联合主键注解配置
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。