名前の 1 つは User で、このユーザーには他のクラス インスタンスがあります。このような;
public class User{
@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL)
public List<APost> aPosts;
@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL)
public List<BPost> bPosts;
}
public class BPost extends Post {
@ManyToOne(fetch=FetchType.LAZY)
public User user;
}
public class APost extends Post {
@ManyToOne(fetch=FetchType.LAZY)
public User user;
}
このように機能していますが、DB に空のテーブルが生成されます。外部キーを含める必要があります。アノテーションを使用しようとするmappedBy
と失敗しました。JoinColumn
どうすればこれを解決できますか?
追加情報:
と着替えた時は・・・
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="id")
public User user;
と
@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="id")
public List<APost> aPosts;
私は得ています
JPA エラーが発生しました (EntityManagerFactory を構築できません): エンティティのマッピングで列が繰り返されました: models.post.APost 列: id (insert="false" update="false" でマップする必要があります)
最終編集:最後に、JPA アノテーションについて完全に間違っていました。:(私が変わるとき
@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="id")
に
@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="user")
と
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="user_id")
すべて正常に動作します。:)