Address.java
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);
package
one2one;
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;
}
}
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
package
one2one;
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;
}
}
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);
还有:
Address2 add
=
(Address2) s.load(Address2.
class
,
new
Long(
1
));
System.out.println( add.getAddress().getAddress2().getId());
;
System.out.println( add.getAddress().getAddress2().getId());
;
qq 81553652 联系我