我有4個表格 - store, catalog_galleries, catalog_images, and catalog_financials
。遍歷ORM關係返回重複結果
當我遍歷從store --> catalog_galleries --> catalog_images
換句話說:store.getCatalogGallery().getCatalogImages()
我得到重複的記錄。有誰知道這可能是什麼原因?任何建議在哪裏看?
的store
表具有與catalog_galleries
一個OneToOne
關係,其又具有與catalog_images
一個OneToMany
關係以及預先抓取類型。 store
表還與catalog_financials
有OneToMany
關係。
下面是相關實體:
實體店
@Entity
@Table(name="store")
public class Store {
...
private CatalogGallery gallery;
...
@OneToOne(mappedBy="store")
public CatalogGallery getGallery() {
return gallery;
}
}
CatalogGallery實體
@Entity
@Table(name="catalog_galleries")
public class CatalogGallery {
...
private Store store;
private Collection<CatalogImage> catalogImages;
...
@OneToOne
@PrimaryKeyJoinColumn
public Store getStore() {
return store;
}
@OneToMany(mappedBy="catalogGallery", fetch=FetchType.EAGER)
public Collection<CatalogImage> getCatalogImages {
return catalogImages;
}
}
CatalogImage實體
@Entity
@Table(name="catalog_images")
public class CatalogImage {
...
private CatalogGallery catalogGallery;
...
@ManyToOne
@JoinColumn(name="gallery_id", insertable=false, updatable=false)
public CatalogGallery getCatalogGallery() {
return catalogGallery;
}
}
沒有足夠的信息,請提供您的JPA類與映射。你有沒有試過看看生成的SQL? – Osw 2011-01-06 23:34:22
所有記錄是否重複?你有沒有檢查你的連接列重複條目? – weltraumpirat 2011-01-07 00:54:59