我有两个实体,一个用于taskList,另一个用于用户。用户可以为自己或他们的朋友创建任务,因此在tasks实体中,我有不同的列引用User
实体,一个列用于createdBy
,另一个列为createdFor
,最后一个列用作modifiedBy
在tasks
实体中,我建立了以下@ManyToOne
JPA关系:
@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
中映射它们。
将关系配置为单向关系是完全有效的。您现有的代码应该已经完美工作了。