Ich habe Probleme, einen Ruhezustand auszuwählen, um ein korrekt gefülltes Objektdiagramm zurückzugeben, wenn das Auswählen Joins in vielen Sammlungen enthält.Hibernate - Auswahl über mehrere Joins mit Sammlungen
ZB:
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";
- A Changeset hat viele ChangeEntries
- A ChangeEntry hat ein RepositoryEntity
- A RepositoryEntity hat ein Repository
Die obige Aussage die richtigen Daten zurückgibt, aber das Objektdiagramm ist nicht korrekt gefüllt - dh jedes Changeset enthält jede ChangeE ntry, nicht nur seine eigenen Kinder.
Hier die entsprechenden Schnipsel dieser beiden Klassen:
public class Changeset {
@NotNull
@OneToMany(mappedBy="changeset", targetEntity=ChangeEntry.class, cascade={CascadeType.ALL }, fetch=FetchType.EAGER)
private Set<IChangeEntry> changeEntries;
Und ...
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;
Jede mögliche Unterstützung stark
geschätztGrüße
Marty
Sie haben die Zuordnungsinformationen für Repository hinzugefügt, nicht für ChangeSet in ChangeEntry. – rudolfson
Danke - Ich habe Changeset hinzugefügt –