package com.hibernate.rqq;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.OneToOne;
@Entity
public class Husband {
privateint id;
privateString name;
privateWife wife;
@Id
@GeneratedValue
publicint getId() {
returnid;
}
publicString getName() {
returnname;
}
@OneToOne
@JoinColumns(
{
@JoinColumn(name="wifeid",referencedColumnName="id"),
@JoinColumn(name="wifename",referencedColumnName="name")
}
)
publicWife getWife() {
returnwife;
}
publicvoid setWife(Wife wife) {
this.wife= wife;
}
publicvoid setId(int id) {
this.id= id;
}
publicvoid setName(String name) {
this.name= name;
}
}
package com.hibernate.rqq;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
@Entity
@IdClass(Wife_PK.class)
public class Wife {
privateint id;
privateString name;
@Id
publicint getId() {
returnid;
}
@Id
publicString getName() {
returnname;
}
publicvoid setId(int id) {
this.id= id;
}
publicvoid setName(String name) {
this.name= name;
}
}
package com.hibernate.rqq;
import java.io.Serializable;
public class Wife_PK implements Serializable {
privateint id;
privateString name;
publicint getId() {
returnid;
}
publicString getName() {
returnname;
}
publicvoid setId(int id) {
this.id= id;
}
publicvoid setName(String name) {
this.name= name;
}
publicboolean equals(Object obj) {
if(objinstanceof Wife_PK) {
Wife_PKpk = (Wife_PK) obj;
if(this.id== pk.getId() && this.name.equals(((Wife_PK) obj).getName())) {
returntrue;
}
}
returnfalse;
}
publicint hashCode() {
returnthis.getName().hashCode();
}
}