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

Multiple Spring JPA relationships between 2 entities

我有 2 个实体,一个用于任务列表,另一个用于用户。用户可以为自己或他们的朋友创建任务,因此在任务实体中我有不同的列引用 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 来处理用户创建的任务或他修改的任务。

你不需要映射一个 Entity 中的所有东西,也不需要像 bi-directional.

配置每一个关系

因此,如果您确实不需要访问从给定 User 创建和修改的 Tasks,请忽略它们并且不要将它们映射到 User

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