2个实体之间的多个Spring JPA关系



我有两个实体,一个用于taskList,另一个用于用户。用户可以为自己或他们的朋友创建任务,因此在tasks实体中,我有不同的列引用User实体,一个列用于createdBy,另一个列为createdFor,最后一个列用作modifiedBy
tasks实体中,我建立了以下@ManyToOneJPA关系:

@ManyToOne(optional = false)
@JoinColumn(name = "created_by", nullable = false,
referencedColumnName = "id")
private User createdBy;
@ManyToOne
@JoinColumn(name = "created_for", nullable = false,
referencedColumnName = "id")
private User createdFor;
@ManyToOne
@JoinColumn(name = "modified_by", nullable = false,
referencedColumnName = "id")
private User modifiedBy;

但我不确定如何在Users侧进行链接,我有以下@OneToMany关系:

@OneToMany(mappedBy = "createdFor", cascade = CascadeType.ALL)
private List<Task> taskList;

但我不确定如何处理其他关系,因为用户创建的任务或修改的任务并不需要taskList

您不需要映射实体中的所有内容,也不需要将每个关系配置为双向关系。

因此,如果您真的不需要访问从给定的User创建和修改的Tasks,只需忽略它们,不要在User中映射它们。

将关系配置为单向关系是完全有效的。您现有的代码应该已经完美工作了。

最新更新