Hibernate @可接合的一对一关系
我有两张表,如下所示:Hibernate @可接合的一对一关系,hibernate,join,Hibernate,Join,我有两张表,如下所示: AFFILIATES ---------- affiliateId (String) (PK) CONVERSION ----------- conversionId (Integer) (PK) purchaseId (Integer) (not null) PURCHASE --------- purchaseId (Integer) (PK) associateId (String) (allow NULL) @Entity @Table(name="AFFI
AFFILIATES
----------
affiliateId (String) (PK)
CONVERSION
-----------
conversionId (Integer) (PK)
purchaseId (Integer) (not null)
PURCHASE
---------
purchaseId (Integer) (PK)
associateId (String) (allow NULL)
@Entity
@Table(name="AFFILIATES")
class Affiliate implements Serializable {
@Id
@Column(name= "affiliate_id")
private String affiliateId;
@OneToMany(mappedBy="affiliate", fetch=FetchType.LAZY)
private Set<Conversion> conversion;
public String getAffiliateId() {
return affiliateId;
}
public void setAffiliateId(String affiliateId) {
this.affiliateId = affiliateId;
}
public Set<Conversion> getConversion() {
return conversion;
}
public void setConversion(Set<Conversion> conversion) {
this.conversion = conversion;
}
}
@Entity
@Table(name="CONVERSION")
class Conversion implements Serializable{
@Id
@Column(name="conversion_id")
private int conversionId;
@ManyToOne(optional=true, fetch=FetchType.LAZY)
private Affiliate affiliate;
public int getConversionId() {
return conversionId;
}
public void setConversionId(int conversionId) {
this.conversionId = conversionId;
}
public Affiliate getAffiliate() {
return affiliate;
}
public void setAffiliate(Affiliate affiliate) {
this.affiliate = affiliate;
}
}
实体映射如下所示:
AFFILIATES
----------
affiliateId (String) (PK)
CONVERSION
-----------
conversionId (Integer) (PK)
purchaseId (Integer) (not null)
PURCHASE
---------
purchaseId (Integer) (PK)
associateId (String) (allow NULL)
@Entity
@Table(name="AFFILIATES")
class Affiliate implements Serializable {
@Id
@Column(name= "affiliate_id")
private String affiliateId;
@OneToMany(mappedBy="affiliate", fetch=FetchType.LAZY)
private Set<Conversion> conversion;
public String getAffiliateId() {
return affiliateId;
}
public void setAffiliateId(String affiliateId) {
this.affiliateId = affiliateId;
}
public Set<Conversion> getConversion() {
return conversion;
}
public void setConversion(Set<Conversion> conversion) {
this.conversion = conversion;
}
}
@Entity
@Table(name="CONVERSION")
class Conversion implements Serializable{
@Id
@Column(name="conversion_id")
private int conversionId;
@ManyToOne(optional=true, fetch=FetchType.LAZY)
private Affiliate affiliate;
public int getConversionId() {
return conversionId;
}
public void setConversionId(int conversionId) {
this.conversionId = conversionId;
}
public Affiliate getAffiliate() {
return affiliate;
}
public void setAffiliate(Affiliate affiliate) {
this.affiliate = affiliate;
}
}
我不知道如何获得affiliateID
abc的所有转换
如果你有任何想法,请告诉我
转换应该通过第三个表PURCHASE获取。我理解您的模式,PURCHASE似乎不仅仅是一个联接表,它本身就是一个实体。因此,创建一个采购实体,并与关联实体建立适当的关系。典型的联接表至少有两个指向相关表的外键。它可能具有代理主键或复合主键(使用两个外键的组合创建)。由于purchase有一个主键(很可能是代理键)和另一个外键列,因此最好将purchase建模为一个实体您好,您是对的purchase是一个实体,但它与我的项目无关,因此我无法将其作为实体,因此我需要一些其他解决方法。购买也是通过hbm.xml文件生成的,所以基本上它不是JPA的一部分。