Attachment
エンティティを作成して、異なるタイプのエンティティに関連する可能性がありますので、@Any
注釈を使用しようとしています。私のコードは次のようである:Spring JPA:@Any`アノテーションを持つオブジェクトのプロパティIDが見つかりません
@Entity
public class Attachment{
@XmlElement
@Any(metaColumn = @Column(name = "containerType"), fetch = FetchType.LAZY)
@AnyMetaDef(idType = "long", metaType = "string",
metaValues = {
@MetaValue(targetEntity = TestApp.class, value = "TestApp")
})
@JoinColumn(name = "container_id")
private Object container;
@XmlElement
@Column(insertable = false, updatable = false) //this I added cause Hibernate said so
private String containerType;
}
私の問題は、今、私は私のアプリを起動すると、DBの初期化がで失敗していることである。これまでのところ、正確にある@Any
を使用しての
org.springframework.data.mapping.PropertyReferenceException: No property id found for type Object! Traversed path: Attachment.container
すべての例私が見つけました同じ。では、これを行う正しい方法は何ですか?
ここで問題となっているのは、私が今までに見つけたすべての例が、私が示したものと同じだから、これはうまくいくと思います。 – svz
通常は 'JoinColumn'を使うので、フィールドの型は' ID'を持つEntityです。したがって、JPAはPKを参照列として使用するため、デフォルトでは追加する必要はありません – Mavlarn