2012-04-10 80 views

回答

6

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

至于Hibernate,它有an extension annotation来启用foreign ID generator。您可以选择使用它,如果你不介意:

@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; 
0

对于什么是值得JPA 2.0增加了可用于外键导入@MappedBy注解。从基督教的榜样和枯燥简单地起价陈启泰的:

@Id 
@Column 
private Long personId; 

@ManyToOne 
@JoinColumn(name = "personId") 
@MapsId 
private Person person; 

我知道这个问题是来自前一段时间,但因为我解决同样的问题,当它两端绊倒,然后挖出@MappedBy,我以为我” d将其添加到稍后遇到此问题的任何人。