【问题标题】:Multiple Spring JPA relationships between 2 entities2个实体之间的多个Spring JPA关系
【发布时间】:2022-01-22 21:45:33
【问题描述】:

我有 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

【问题讨论】:

    标签: java spring hibernate jpa spring-data-jpa


    【解决方案1】:

    您不需要映射 Entity 中的所有事物,也不需要将每个关系都配置为双向。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-07
      • 2012-02-12
      • 2013-01-10
      • 2017-07-12
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      相关资源
      最近更新 更多