を使用して、私はJava2EEを使用してさえずりのようなプロジェクトをやろうとしている、とここではデータベースの単純なビューです。
3つのJoinTableが、フォロワーとフォロワーです。 (言及注意、フォロワー、以下、すべてのユーザーフィールドが外部キーとしてUser.usernameを持っています。) 私は私のデプロイがこの例外に失敗する最初のものに問題、持っている:
を例外説明:[field mentions]要素にマッピングされた参照列名[username]がマッピング参照の有効なフィールドに対応していません。
ここで2つのエンティティのマッピングを示します。
ツイート:
public class Tweet implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "id", nullable = false)
private Integer id;
...
@JoinColumn(name = "user", referencedColumnName = "username")
@ManyToOne
User user;
@JoinTable(name = "Mention", joinColumns = {
@JoinColumn(name = "tweet", referencedColumnName = "id")}, inverseJoinColumns = {
@JoinColumn(name = "mentioned", referencedColumnName = "username")})
@OneToMany
private Collection<Tweet> mentions;
ユーザー:
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 50)
@Column(name = "username", nullable = false, length = 50)
...
@OneToMany(mappedBy = "user")
Collection<Tweet> tweets;
@JoinTable(name = "Following", joinColumns = {
@JoinColumn(name = "user", referencedColumnName = "username")}, inverseJoinColumns = {
@JoinColumn(name = "following", referencedColumnName = "username")})
@OneToMany
Collection<User> following;
@JoinTable(name = "Followers", joinColumns = {
@JoinColumn(name = "user", referencedColumnName = "username")}, inverseJoinColumns = {
@JoinColumn(name = "follower", referencedColumnName = "username")})
@OneToMany
Collection<User> followers;
@OneToMany(mappedBy = "mentions")
Collection<Tweet> mentioning;
私のマッピングが悪いのか? 誰かが私に解決策を教えてもらえますか?
であなたを残してユーザーのlectionは、おそらく、マッピングとは無関係です注釈を削除するには、あなたのいいだろう、私はこのコードの多くは、質問とは無関係だと思うと –
が固定:-)などのインデントを修正します。私はUserクラスにいくつかのマッピングを残しました。間違っているかもしれないからです:) – StepTNT
'Mention.mentioned'は' User.username'によって参照されるべきです。 'の後ろに' username'フィールドはありませんが、このマッピングで動作します。これは 'Mention'の場合と全く同じです – StepTNT