2012-04-10 12 views

答えて

6

AFAIK、JPA仕様では、外部IDジェネレータを標準化していません。このインスタンスを保存する前に、PK値をプログラムで正しく設定する必要があります。

Hibernateの場合、an extension annotationforeign 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これを後で実行する人のために追加します。

関連する問題