У меня есть две сущности, которые образуют отношения многие ко многим.Каждый Spectrum
сопоставляется с другим Spectrum
, а их показатель сходства хранится в SpectrumMatch
.
@Entity
public class Spectrum {
private long id;
private List<SpectrumMatch> matches;
private List<SpectrumMatch> matches2;
@OneToMany(targetEntity = SpectrumMatch.class,
mappedBy = "querySpectrum",
fetch = FetchType.LAZY,
cascade = Cascade.ALL)
public List<SpectrumMatch> getMatches()
@OneToMany(targetEntity = SpectrumMatch.class,
mappedBy = "matchSpectrum",
fetch = FetchType.LAZY,
cascade = Cascade.ALL)
public List<SpectrumMatch> getMatches2()
}
@Entity
public class SpectrumMatch {
private long id;
@NotNull
private Spectrum querySpectrum;
@NotNull
private Spectrum matchSpectrum;
private double score;
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "QuerySpectrumId", referencedColumnName = "Id")
public Spectrum getQuerySpectrum();
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "MatchSpectrumId", referencedColumnName = "Id")
public Spectrum getMatchSpectrum()
}
. В этом коде поле Spectrum.matches
содержит все экземпляры SpectrumMatch
, где SpectrumMatch.querySpectrum.id
равно этому Spectrum.id
.
Однако я бы хотел, чтобы поле Spectrum.matches
содержало все экземпляры SpectrumMatch
, где либо SpectrumMatch.querySpectrum.id
или SpectrumMatch.matchSpectrum.id
равно Spectrum.id
.
Возможно ли реализовать такие отношения?