2人以上のユーザー間のプライベートメッセージのモデルを実装しようとしています。
つまり、2つのエンティティがあります。
- ユーザー
- プライベートメッセージ
ユーザーモデルは編集しないでください。そのため、一方向の関係を設定しようとしています。
@Entity (name = "User")
@Table (name = "user")
public class User implements Serializable {
@Id
String username;
String password;
// something like this ...
}
PrivateMessageモデルは複数の受信者をアドレス指定し、送信者は1つだけです。だから私はこのようなものが必要です:
@Entity (name = "PrivateMessage")
@Table (name = "privateMessage")
@XmlRootElement
@XmlType (propOrder = {"id", "sender", "receivers",
"title", "text", "date", "read"})
public class PrivateMessage implements Serializable {
private static final long serialVersionUID = -9126766942868177246L;
@Id
@GeneratedValue
private Long id;
@NotNull
private String title;
@NotNull
private String text;
@NotNull
@Temporal(TemporalType.TIMESTAMP)
private Date date;
@NotNull
private boolean read;
@NotNull
@ElementCollection(fetch = FetchType.EAGER, targetClass = User.class)
private Set<User> receivers;
@NotNull
@OneToOne
private User sender;
// and so on
}
対応する「privateMessage」テーブルは生成されず、PMと多くの受信者の間の関係だけが満たされます。私はこれについて混乱しています。'mappedBy'属性を設定しようとするたびに、IDEはそれをエラーとしてマークします。
ユーザーエンティティがそれをマップするプライベートメッセージを認識していないことが問題のようです。
私はここで何が間違っているのですか?私はこれに似たいくつかの状況を解決しましたが、それらの解決策のどれもここでは機能しません。
前もって感謝します!