您好我是JPA的新手,我想知道是否可以将两个实体映射到另一个实体?
例如,假设我有:
-entity1
public class LieuEnseignement implements Serializable {
@Id
@Column(name = "NO_ORGNS", nullable = false)
private Long noOrganisme;
@Column(name = "NO_ADR_GEOGR")
private Long noAdresseGeographique;
@OneToMany(mappedBy="etabEns", cascade = CascadeType.ALL)
private Set<AdresseGeographique> adresseGeographique;
-entity 2
public class EtablissementEnseignement implements Serializable {
@Column(name = "NO_ORGNS", nullable = false)
private Long noOrganisme;
@Column(name="NO_ADR_GEOGR")
private Long noAdresseGeographique;
@OneToMany(mappedBy="etabEns", cascade = CascadeType.ALL)
private Set<AdresseGeographique> adresseGeographique;
-entity 3
public class AdresseGeographique implements Serializable{
@Column(name="NO_ADR", nullable = false)
private Long noAdresse;
@Column(name="LIGNE1_ADR", nullable = false, length = 40)
private String ligne1AdrGeographique;
@Column(name="LIGNE2_ADR", nullable = false, length = 40)
private String ligne2AdrGeographique;
@Column(name="VILLE", nullable = false, length = 46)
private String villeAdrGeographique;
@Column(name="PROV_PAYS", nullable = false, length = 30)
private String provincePaysAdrGeographique;
@Column(name="CD_POSTAL", nullable = false, length = 6)
private String codePostaleAdrGeographique;
@Column(name="CD_MUNICIPALITE", nullable = false, length = 5)
private String codeMunicipaliteAdrGeographique;
@Column(name="POSTN_X", nullable = false)
private String positionXAdrGeographique;
@Column(name="POSTN_Y", nullable = false)
private String positionYAdrGeographique;
@ManyToOne
@JoinColumn(name = "NO_ADR", referencedColumnName = "NO_ADR_GEOGR", insertable=false, updatable=false)
private EtablissementEnseignement etabEns;
@ManyToOne
@JoinColumn(name = "NO_ADR", referencedColumnName = "NO_ADR_GEOGR", insertable=false, updatable=false)
private LieuEnseignement lieuEns;
所以基本上实体1和2从不同时调用实体3。我想我可以宣布两个单独的连接列,但显然这是不可能的。
edit1:至于为什么我没有为实体1和2使用继承是因为它们完全不同但我没有把所有数据都包含在其中,因为我没有发现它与问题有关。
提前感谢您的帮助。