什么是JPA相当于Hibernate的外部id生成器?

Chr*_*ger 3 hibernate jpa jpa-2.0

什么是JPA相当于Hibernate的外部id生成器?

<id column="PERSON_ID" name="id" type="java.lang.Long">
   <generator class="foreign">
      <param name="property">person</param>
   </generator>
</id>
Run Code Online (Sandbox Code Playgroud)

Ken*_*han 6

AFAIK,JPA规范没有标准化外来ID生成器.在保存此实例之前,必须以编程方式正确设置PK值.

至于Hibernate,它有一个扩展注释来启用外部ID生成器.如果您不介意,可以选择使用它:

  @Id
  @GeneratedValue(generator = "myForeignGenerator")
  @org.hibernate.annotations.GenericGenerator(
        name = "myForeignGenerator",
        strategy = "foreign",
        parameters = @Parameter(name = "property", value = "person")
  )
  @Column(name = "PERSON_ID")
  private Long id;
Run Code Online (Sandbox Code Playgroud)