在hibernate中将数据成员声明为主键

时间:2012-12-05 18:36:56

标签: java hibernate struts2 struts

我有2个实体类用户和地址

@Entity
class User
{
    int id;
    String name;
}

@Entity
class Vehicle
{
    @OneToOne
    User user;
    String vehName; 
}

我想将Vehicle类中的“user”数据成员声明为主键。有人能告诉我解决方案吗?

1 个答案:

答案 0 :(得分:0)

the documentation中所述:

  

最后,您可以要求Hibernate从另一个复制标识符   相关实体。在Hibernate术语中,它被称为外国人   生成器,但JPA映射读得更好,并鼓励。

@Entity
class MedicalHistory implements Serializable {
  @Id @OneToOne
  @JoinColumn(name = "person_id")
  Person patient;
}

@Entity
public class Person implements Serializable {
  @Id @GeneratedValue Integer id;
}
  

或者

@Entity
class MedicalHistory implements Serializable {
  @Id Integer id;

  @MapsId @OneToOne
  @JoinColumn(name = "patient_id")
  Person patient;
}

@Entity
class Person {
  @Id @GeneratedValue Integer id;
}