Hibernate使用注解设定关联关系


一、one to one,从表主键引用主表主键

主表实体:

  1. @Entity 
  2. @Table(name="EMPLOYEE"
  3. public class Employee { 
  4.    
  5.     @Id 
  6.     @GeneratedValue 
  7.     @Column(name="employee_id"
  8.     private Long employeeId; 
  9.        
  10.     @Column(name="name"
  11.     private String name; 
  12.    
  13.     @OneToOne(mappedBy="employee"cascade=CascadeType.ALL) 
  14.     private EmployeeDetail employeeDetail; 
  15.        
  16.     public Employee() { 
  17.            
  18.     } 
  19.    
  20.     // Getter and Setter methods 

从表实体:

  1. @Entity 
  2. @Table(name="EMPLOYEEDETAIL"
  3. public class EmployeeDetail { 
  4.        
  5.     @Id 
  6.     @Column(name="employee_id"unique=truenullable=false
  7.     @GeneratedValue(generator="gen"
  8.     @GenericGenerator(name="gen"strategy="foreign"parameters=@Parameter(name="property"value="employee")) 
  9.     private Long employeeId; 
  10.        
  11.     @Column(name="street"
  12.     private String street; 
  13.        
  14.     @OneToOne 
  15.     @PrimaryKeyJoinColumn 
  16.     private Employee employee; 
  17.    
  18.     public EmployeeDetail() { 
  19.    
  20.     } 
  21.    
  22.     // Getter and Setter methods 

注意:设定mappedBy的那一方不进行主表到从表关系的维护,即对employee的更改,不会影响到employeedetail。

相关内容