Ich habe eine viele-zu-Eins-Zuordnung wie folgt aufgebaut, in der hbm.xml:many-to-one HQL Abfrage überwintern, wenn innere holen beitreten Eigenschaft nicht zugeordnet
<many-to-one name="gigVenue"
class="blah.blah.xxx" fetch="select"
lazy="no-proxy" not-null="true" >
<column name="N_VENUE_ID" precision="18" scale="0" not-null="true" />
</many-to-one>
Und ich bin mit Instrumentierung, um echtes Lazy Loading zu machen.
ABER wenn ich eine hql Abfrage mit einem inneren Join fetch auf die andere Tabelle ausführen, wird die Eigenschaft, die das Objekt enthalten sollte, das den Wert der anderen Tabelle enthält, als null belassen. Obwohl ich sehen kann, dass das Objekt der anderen Tabelle durch Hibernate erstellt wird.
Hat jemand einen Einblick in dieses Problem?
Update:
from Gig g inner join fetch g.gigVenue gv where g.artistId = :artistId and (g.territoryId = -1 or g.territoryId = :territoryId) order by g.gigDatetime desc
<set name="gigs" inverse="true" lazy="true" table="DSP_GIG" fetch="select">
<key>
<column name="N_VENUE_ID" precision="18" scale="0" not-null="true" />
</key>
<one-to-many class="blah.blah.Gig" />
</set>
Können Sie die eigentliche Abfrage und das 2. Mapping posten? – ChssPly76