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联合主键注解配置的更多相关文章
- hibernate联合主键 注解方式
转载自https://my.oschina.net/yotoo/blog/265571 方法一:主键类用@Embeddable,pojo类仍然用@Entity但是引用主键类的对象用@Id 主键pojo ...
- hibernate联合主键注解方式
方法一:主键类用@Embeddable,pojo类仍然用@Entity但是引用主键类的对象用@Id 主键pojo类: @Embeddable public class composeIdPK impl ...
- hibernate 联合主键生成机制(组合主键XML配置方式)
hibernate 联合主键生成机制(组合主键XML配置方式) 如果数据库中用多个字段而不仅仅是一个字段作为主键,也就是联合主键,这个时候就可以使用hibernate提供的联合主键生成策略. 具体 ...
- Java进阶知识05 Hibernate联合主键之Annotation(注解)和XML实现方式
1.Hibernate联合主键(Annotation实现) 1.1.单列主键 1.1.1.为什么要有主键? //唯一确定一条记录 1.1.2.一个表能否有多个主键? //不能 1.1.3. ...
- Hibernate联合主键映射
1.联合主键的映射规则 1) 类中的每个主键属性都对应到数据表中的每个主键列. Hibernate要求具有联合主键的实体类实现Serializable接口,并且重写hashCode与equals方法, ...
- hibernate 联合主键 composite-id
如果表使用联合主键(一个表有两个以上的主键),你可以映射类的多个属性为标识符属性.如:<composite-id>元素接受<key-property> 属性映射(单表映射)和& ...
- 这是一个hibernate 联合主键的例子
package com.bird.entity; import java.io.Serializable; import javax.persistence.Entity; import javax. ...
- hibernate 联合主键
xml方式处理联合主键: 以有两个主键:id和name的student表为例. 先创建个主键类: package com.bjsxt.hibernate; //黑色为必写项 public ...
- hibernate关联非主键注解配置
现在有两张表:一张t_s_user用户表和t_s_user_serial_number用户序号表 CREATE TABLE `t_s_user` ( `id` ) NOT NULL, `email` ...
随机推荐
- js 函数声明与函数表达式
1,变量包括全局变量和局部变量,局部变量只能在函数内部访问.如果函数传参和全局变量一样的话,即使是给全局变量赋值,这里会把全局变量当成局部变量的. 如: 1: var x='x'; 2: 3: ...
- MySQL - 建库、建表、查询
本章通过演示如何使用mysql客户程序创造和使用一个简单的数据库,提供一个MySQL的入门教程.mysql(有时称为“终端监视器”或只是“监视”)是一个交互式程序,允许你连接一个MySQL服务器,运行 ...
- 生产环境中CentOS7部署NET Core应用程序
NET Core应用程序部署至生产环境中(CentOS7) 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. ...
- Ext4 MVC CRUD操作
项目目录结构如下: (1)index.html <!DOCTYPE html> <html> <head> <title>用户管理</title& ...
- Apache监控
Apache性能监控 http://www.cnblogs.com/fnng/archive/2012/11/11/2765463.html 要监控apache的性能,我们需要修改配置文件,允许查看a ...
- SQL Server 2008空间数据应用系列十:使用存储过程生成GeoRSS聚合空间信息
原文:SQL Server 2008空间数据应用系列十:使用存储过程生成GeoRSS聚合空间信息 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2 ...
- GetCurrentDirectory、SetCurrentDirectory和GetModuleFileName
DWORD GetCurrentDirectory( DWORD nBufferLength, // size of directory buffer LPTSTR lpBuffer // ...
- Container With Most Water 解答
Question Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate ...
- ZOJ 2048(Prim 或者 Kruskal)
Highways Time Limit: 5 Seconds Memory Limit: 32768 KB Special Judge The island nation of F ...
- android 分享到新浪微博
分享到新浪微博,折腾了大半个月,现在终于弄出来了,心里的那个爽呀,太痛快了,哈哈!! 废话少说,首先是认证, 1.进入新浪微博提供的开放平台注册新浪账号. 2.点击’我是开发者‘,创建一个应用,得到C ...