首页 > 解决方案 > 与自身的多对多关系并结合结果

问题描述

我有下一个数据库关系

该表定义了实体的 id

   ID
    1
    2
    3
    4

这就是这个表和它自己的关系

ID_A  ID_B
 1      2
 2      1  
 3      1 

我的实体中有这个映射,它可以正常工作

@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "AGRUPACION_MOTIVOS_INDEBIDO", joinColumns = @JoinColumn(name = "ID_MOTIVO_INDEBIDO_A", referencedColumnName = "ID"), inverseJoinColumns = @JoinColumn(name = "ID_MOTIVO_INDEBIDO_B", referencedColumnName = "ID"))
private List<MotivoIndebido> motivosA = new ArrayList<>();

@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "AGRUPACION_MOTIVOS_INDEBIDO", joinColumns = @JoinColumn(name = "ID_MOTIVO_INDEBIDO_B", referencedColumnName = "ID"), inverseJoinColumns = @JoinColumn(name = "ID_MOTIVO_INDEBIDO_A", referencedColumnName = "ID"))
private List<MotivoIndebido> motivosB = new ArrayList<>();

但是我需要将这两个列表合并为一个,所有结果都没有重复的情况。我是说:

结果列表应包含以下内容:

ID_A  IB_B
 1      2
 1      3

我可以用 hibernate 或 jpa 完成这个,还是我需要在 java 方法中手动组合这个列表?然后我也应该手动保存和删除数据?

抱歉我的英语并感谢您的建议。

标签: javahibernatejpamany-to-many

解决方案


推荐阅读