【发布时间】:2013-02-26 17:40:35
【问题描述】:
我正在研究一个基本上由用户和文档组成的数据模型。现在每次添加新文档时,只要特定用户没有查看它(例如点击它),就应该有一个将文档标识为“未见过”的标志。
您将如何为这样的场景建模?有没有办法将布尔值/标志附加到用户和文档之间的关系?
这是我的简化模型:
@Entity
@Table(name="User")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@Column(length = 128)
private String name;
@ManyToMany(mappedBy = "users", fetch=FetchType.LAZY)
private List<Document> documents = new ArrayList<Document>();
// getters and setters ...
}
这是文档类:
@Entity
@Table(name = "Document")
public class Document {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name = "Inbox", joinColumns = @JoinColumn(name = "document_id"), inverseJoinColumns = @JoinColumn(name = "user_id"))
protected List<User> users = new ArrayList<User>();
// getters and setters ...
}
非常感谢您的帮助!
【问题讨论】:
-
您似乎需要在您的连接表中增加一列,查看。因此,您需要将多对多拆分为两个一对多/多对一关系。
-
感谢您的快速答复!我会尝试您的建议并尽快回来。
标签: java jakarta-ee jpa relationship relation