I have 4 tables -- store, catalog_galleries, catalog_images, and catalog_financials
.
When I traverse the relationship from store --> catalog_galleries --> catalog_images
in other words: store.getCatalogGallery().getCatalogImages()
I get duplicate records. Does anyone know what could be the cause of this? Any suggestions on where to look?
The store
table has a OneToOne
relationship with catalog_galleries
which in turn has a OneToMany
relationship with catalog_images
and an eager fetch type. The store
table also has a OneToMany
relationship with catalog_financials
.
Below are the relevant entities:
Store entity
@Entity
@Table(name="store")
public class Store {
...
private CatalogGallery gallery;
...
@OneToOne(mappedBy="store")
public CatalogGallery getGallery() {
return gallery;
}
}
CatalogGallery entity
@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
@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;
}
}