2011-12-09 13 views
3

私のTableXはTableYを参照しています。このJPAエラーとはどのようなものですか?

@JoinColumn(name = "idTableY", referencedColumnName = "idTableY") 
@ManyToOne(optional = false, fetch=FetchType.LAZY) 
private TableY idTableY; 

このエラーが発生します。

<openjpa-2.0.0-r422266:935683 fatal user error> org.apache.openjpa.persistence.ArgumentException 
"com.mycompany.entities.TableX.idTableY" has columns with targets, but OpenJPA does not support any joins on this mapping in this context. 

表Yは、このコードを持っている:

@OneToMany(cascade = CascadeType.ALL, mappedBy = "idTableY") 
    private Collection<TableX> tableXCollection; 

この生成された食リンクコードは、(同様のコードを持つすべての他のエンティティ/テーブルは問題がない)100%正常です。

しかし、これらの2つはこのようなエラーを出しています。どんな考え?

+0

tableXを参照しているtableYの列名は何ですか? –

+0

tableXコレクション – SQC

+0

persistence.xmlについて – viktor

答えて

4

@JoinColumnの定義を削除してみる必要はありません。外部キーを含む結合列は自動的に生成されます。エンティティは2つの異なるものであるテーブルではありません。エンティティはdbテーブルにクラスマップされます。

+0

はいエンティティはテーブルではありません(申し訳ありません)。 joincolumnのヒントをありがとう – SQC

+0

私はあなたにupvoteするのに十分な評判がありません – SQC

5

私はこの正確なエラーが発生しましたが、私にとっては、persistence.xmlの永続ユニット内のクラスのリストにTableYを追加するという修正がありました。 私にとってTableYはまったく新しい存在でした。 私はそれに@JoinColumnを使用し、正常に動作します。

+0

私はちょうどこの答えが有用であることがわかりました! = P –

関連する問題