您的位置:首页 > 其它

hibernate笔记-009-联合主键一对一映射

2017-06-09 16:16 447 查看
注解 @JoinColums 的用法

package com.hibernate.entity;

import java.io.Serializable;

// 主键类
public class TeacherPK implements Serializable {

private static final long serialVersionUID = 6939546618791078447L;
private Long id;
private String name;

@Override
public boolean equals(Object obj) {
if (obj instanceof TeacherPK) {
TeacherPK teacherPK = (TeacherPK) obj;
if (this.id == teacherPK.getId() && this.name.equals(teacherPK.getName())) {
return true;
}
}
return false;
}

public Long getId() {
return id;
}

public String getName() {
return name;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}

public void setId(Long id) {
this.id = id;
}

public void setName(String name) {
this.name = name;
}

}

package com.hibernate.entity;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.Table;

// 教师类
@Entity
@Table(name = "t_teacher")
@IdClass(value = TeacherPK.class)
public class Teacher implements Serializable {

private static final long serialVersionUID = 3543286868313801941L;
@Id
private Long id;
@Id
private String name;
private String title;

public Long getId() {
return id;
}

public String getName() {
return name;
}

public String getTitle() {
return title;
}

public void setId(Long id) {
this.id = id;
}

public void setName(String name) {
this.name = name;
}

public void setTitle(String title) {
this.title = title;
}

}

package com.hibernate.entity;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;

// 教师证实体类
@Entity
@Table(name = "t_teachercard")
public class TeacherCard implements Serializable {

private static final long serialVersionUID = -3211605077508265286L;
@Id
@GeneratedValue(generator = "teacherCard_GEN")
@GenericGenerator(name = "teacherCard_GEN", strategy = "uuid")
private String id;
@OneToOne(optional = true)
@JoinColumns(value = { @JoinColumn(name = "teacher_id", referencedColumnName = "id"), //
@JoinColumn(name = "teacher_name", referencedColumnName = "name") })
private Teacher teacher;
private String position;

public String getId() {
return id;
}

public String getPosition() {
return position;
}

public Teacher getTeacher() {
return teacher;
}

public void setId(String id) {
this.id = id;
}

public void setPosition(String position) {
this.position = position;
}

public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: