當select包含跨多個集合的連接時,我無法獲得hibernate select來返回正確填充的對象圖。休眠 - 通過多個集合進行集合選擇
如:
String sql = "select distinct changeset " +
"from Changeset changeset " +
"join fetch changeset.changeEntries as changeEntry " +
"join fetch changeEntry.repositoryEntity as repositoryEntity " +
"join fetch repositoryEntity.repository as repository " +
"where repository.connectionName = :connectionName";
- 一個變更有許多ChangeEntries
- 一個ChangeEntry有一個RepositoryEntity
- 一個RepositoryEntity有一個倉庫
上面的語句返回正確的數據,但對象圖沒有正確填充 - 即,每個Changeset都包含每個ChangeE不僅僅是自己的孩子。
下面是這兩個類的相關片段:
public class Changeset {
@NotNull
@OneToMany(mappedBy="changeset", targetEntity=ChangeEntry.class, cascade={CascadeType.ALL }, fetch=FetchType.EAGER)
private Set<IChangeEntry> changeEntries;
而且......
public class ChangeEntry {
@NotNull
@ManyToOne(targetEntity=Changeset.class)
@ForeignKey(name="FkChangeEntryChangeset")
private IScmChangeset changeset;
@NotNull
@ManyToOne(targetEntity=RepositoryEntity.class, cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@ForeignKey(name="FkChangeEntryRepoEntity")
private IRepositoryEntity repositoryEntity;
任何幫助是極大的讚賞
問候
馬蒂
您添加了Repository的映射信息,而不是ChangeEntry中的ChangeSet。 – rudolfson 2009-06-02 12:10:38
謝謝 - 我已經添加了Changeset – 2009-06-02 12:35:48