import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import org.hibernate.test.annotations.Passport;
@javax.persistence.Entity
public class Address implements Serializable{
private Long id;
String name;
Address2 address2;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address() {
}
@Id
/* @TableGenerator(name = "empGen", allocationSize = 2000, initialValue = 100)*/
@GeneratedValue
// (strategy = GenerationType.TABLE, generator = "empGen")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToOne(cascade = CascadeType.ALL)
/*@PrimaryKeyJoinColumn
@JoinColumn(name = "Address2_ID") */
public Address2 getAddress2() {
return address2;
}
public void setAddress2(Address2 address2) {
this.address2 = address2;
}
}
Address2.java
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class Address2 implements Serializable {
private Long id;
private Address address;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToOne(mappedBy = "address2")
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
兩者通過 @OneToOne(cascade = CascadeType.ALL) 和
@OneToOne(mappedBy = "address2") 進行一對一的雙向關聯。
測試代碼:
Session s = HibernateUtil.getSession();
s.beginTransaction();
Address ass = new Address();
ass.setName("ssss");
Address2 ass2 = new Address2();
ass.setAddress2(ass2);
ass2.setAddress(ass);
s.persist(ass);
還有:
System.out.println( add.getAddress().getAddress2().getId());
;
qq 81553652 聯繫我