我正在尝试为两个或多个用户之间的私人消息实现模型。
这意味着我有两个实体:
- 用户
- 私人信息
用户模型不应该被编辑,所以我试图建立一个单向关系:
@Entity (name = "User")
@Table (name = "user")
public class User implements Serializable {
@Id
String username;
String password;
// something like this ...
}
PrivateMessage 模型针对多个接收者,并且只有一个发送者。所以我需要这样的东西:
@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 都会将其标记为错误。
用户实体不知道映射它的私人消息似乎是一个问题。
我在这里做错了什么?我已经解决了一些与此类似的情况,但这些解决方案都不会在这里起作用。
提前致谢!