联合主键的使用
来源:互联网 发布:ip端口绑定域名 编辑:程序博客网 时间:2024/05/01 00:10
在建数据库表的时候,有时候会用对象的多个属性来作为主键,这就是联合主键。
联合主键的使用:先把实体类建好,然后把作为主键的属性写到一个class中作为联合主键类
在写联合主键类时,联合主键类必须实现serializable接口,而且联合主键类必须重写equals()方法和hashCode()方法,这样做的目的是为了确保唯一性。
在实体类中用注解把相应的ID和其他一些属性设置好。
Example:
建一个Wife类:
@Entity
@IdClass(WifePK.class) //联合主键的属性所在的类
public class Wife {
private int id;
private String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Id //要作为联合主键的属性
public int getId() {
return id;
}
@Id //要作为联合主键的属性
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
联合主键类:
public class WifePK implement serializable {//主键类必须实现serializable接口
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//联合主键类必须重写equals()方法和hashCode()方法
@Override
public boolean equals( Object o){
if ( o instanceof WifePK){
WifePK pk =(WifePK)o;
if(this.id==pk.getId()&& this.name.equals(pk.getName()))
return true;
}
return false;
}
@Override
public int hashCode(){
return this.name.hashCode();
}
}
建立一个Husband类,并设置表的关系:
@Entity
public class Husband {
private int id;
private String name;
private Wife wife;//这是一个引用,用来连接Husband与Wife之间的对应
@Id
@GeneratedValue
public int getId() {
return id;
}
public String getName() {
return name;
}
@OneToOne //可以默认 也可以自己设置名字
@JoinColumns(
{
@JoinColumn(name="wifeId",referencedColumnName="id"),//自己设定外键名字
@JoinColumn(name="wifeName",referencedColumnName="name")
}
)
public Wife getWife() {
return wife;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setWife(Wife wife) {
this.wife = wife;
}
}
- 联合主键的使用
- JPA联合主键的使用
- Hibernate联合主键的使用
- Android sqlite联合主键的使用
- Fluent NHibernate联合主键的使用
- Android sqlite联合主键的使用
- hibernate中联合主键的使用
- JPA联合主键的使用(@EmbeddedId+@Embeddable)
- Hibernate的联合主键
- hibernate的联合主键
- JPA 的联合主键
- Mysql的联合主键
- Mysql的联合主键
- hibernate的联合主键
- spring jpa使用联合主键
- 联合主键的关系表建立PO使用
- 使用Hibernate配置联合主键的两种方式
- JPA中使用联合主键产生的若干问题
- Hibernate(六)——多对多关联映射
- 如何做好企业网站
- hdu 1823 Luck and Love(线段树)
- Locale类(一)
- EOJ gauss
- 联合主键的使用
- 一切SEO优化效果都变得及其自然
- 求刷Kindle Fire HD的方法
- Ubuntu 命令行打开pdf文件和打开命令行当前目录
- oracle中将驼峰格式转换为下划线格式
- 遥感影像的黑边
- 嵌入式学习之linux FTP配置
- 如何根据关键词来合理编写文章
- Core Audio之音频概念