Ahoj, no to je stara znama vlastnost Hibernate, pokud mate komponentu, nebo cokoliv podobneho a vsechny vlastnosti jsou null, pak nevlozi objekt, ktery ma vsechny atributy null, ale vlozi null :-))
To znam ... ale pozor, neni to bug ale feature ... Jirka Dušan Mamrilla napsal(a): > Este upresnim detaily. > > 1. Ide o spustenie junit testu vzdy nad cistou db (hibernate schema create). > 2. Vsetky objekty su vytvarane v ramci tej istej hibernate session. > 3. Pri vytvarani nastavujem len jednoduche vlastnosti tvoriace primarny > kluc CardReaderAppKey + keyId , ale nenastavujem property applicationKey > (povazoval som to za zbytocne, moj predpoklad bol zrejme chybny) > > Ked som pri bode 3. doplnil aj vlastnost applicationKey, tak pri query > bol vrateny objekt aj s nastavenym applicationKey. > Zjavne som nieco nepochopil ... > > 2007/8/21, Dušan Mamrilla < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>: > > Bohuzial to tiez nepomohlo. Pomoze akurat tak refresh nad konkretnym > objektom CardReaderAppKey (vtedy sa asociacia doplni), no to je > riesenie naozaj pritiahnute za vlasy. > Ocakaval som ze sa pouzije CGLIB proxy, debuger mi vyvratil iluzie. > V logu nenachadzam ziadne chyby tykajuce sa hibernate dependecies > preto predpokladam ze kniznice su v poriadku. Skusim este vytvorit > obojsmernu one-to-one asociaciu, prebehnem este ostatne vazby aby > som sa uistil ze to nie je moj vseobecny problem. > > > 2007/8/21, Lukas Barton <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>: > > A co vrati getApplicationKey, null? > Zkuste pridat .setFetchMode("applicationKey", FetchMode.EAGER): > > DetachedCriteria.forClass(CardReaderAppKey.class) > > .add(Restrictions.eq("cardReader", new CardReader(aCardReaderId))) > .add( > Restrictions.eq("appKeyId", aAppKeyId)) > > .add(Restrictions.eq("appId", aAppId)) > > .setFetchMode("applicationKey", FetchMode.EAGER) > > > .createCriteria("applicationKey").addOrder( > Order.desc("validFrom")); > > > > > Dušan Mamrilla wrote: >> Tu je criteria, ktore pouzivam> >> >> >> >> 2007/8/21, Lukas Barton <[EMAIL PROTECTED] <mailto:[EMAIL >> PROTECTED]>>: >> >> Jake je vase HQL/Criteria? >> >> Lukas >> >> >> Dušan Mamrilla wrote: >>> Bohuzial to nepomohlo. >>> >>> Log zaznam so selektom: >>> >>> DEBUG SQL - >>> select >>> this_.token_id as token1_4_1_, >>> this_.app_id as app2_4_1_, >>> this_.appkey_id as appkey3_4_1_, >>> this_.cr_id as cr4_4_1_, >>> this_.key_id as key5_4_1_, >>> this_.confirmed as confirmed4_1_, >>> applicatio1_.token_id as token1_3_0_, >>> applicatio1_.app_id as app2_3_0_, >>> applicatio1_.appkey_id as appkey3_3_0_, >>> applicatio1_.key_id as key4_3_0_, >>> applicatio1_.valid_from as valid5_3_0_ >>> from >>> test.hsm_cardreader_appkey this_ >>> inner join >>> test.hsm_appkey applicatio1_ >>> on this_.token_id=applicatio1_.token_id >>> and this_.app_id=applicatio1_.app_id >>> and this_.appkey_id=applicatio1_.appkey_id >>> and this_.key_id=applicatio1_.key_id >>> where >>> this_.cr_id=? >>> and this_.appkey_id=? >>> and this_.app_id=? >>> order by >>> applicatio1_.valid_from desc >>> DEBUG AbstractBatcher - preparing statement >>> DEBUG IdentifierValue - id unsaved-value strategy UNDEFINED >>> DEBUG LongType - binding '14031980' to parameter: 1 >>> DEBUG IntegerType - binding '2' to parameter: 2 >>> DEBUG StringType - binding 'KUTEST' to parameter: 3 >>> DEBUG AbstractBatcher - about to open ResultSet (open >>> ResultSets: 0, globally: 0) >>> DEBUG Loader - processing result set >>> DEBUG Loader - result set row: 0 >>> DEBUG IntegerType - returning '0' as column: token1_3_0_ >>> DEBUG StringType - returning 'KUTEST' as column: app2_3_0_ >>> DEBUG IntegerType - returning '2' as column: appkey3_3_0_ >>> DEBUG StringType - returning 'KEY_2' as column: key4_3_0_ >>> DEBUG IntegerType - returning '0' as column: token1_4_1_ >>> DEBUG StringType - returning 'KUTEST' as column: app2_4_1_ >>> DEBUG IntegerType - returning '2' as column: appkey3_4_1_ >>> DEBUG LongType - returning '14031980' as column: cr4_4_1_ >>> DEBUG DefaultLoadEventListener - loading entity: >>> [sk.prosoft.hsm.pojo.CardReader#14031980] >>> DEBUG DefaultLoadEventListener - entity found in session >>> cache >>> DEBUG Loader - result row: >>> >>> EntityKey[sk.prosoft.hsm.pojo.ApplicationKey#component[tokenId,appId,appKeyId,keyId]{appId=KUTEST, >>> tokenId=0, appKeyId=2, keyId=KEY_2}], >>> EntityKey[sk.prosoft.hsm.pojo.CardReaderAppKey#component >>> [tokenId,appId,appKeyId,cardReader]{appId=KUTEST, >>> tokenId=0, >>> cardReader=sk.prosoft.hsm.pojo.CardReader#14031980, >>> appKeyId=2}] >>> DEBUG Loader - done processing result set (1 rows) >>> >>> >>> 2007/8/21, Lukas Barton <[EMAIL PROTECTED] >>> <mailto:[EMAIL PROTECTED]>>: >>> >>> Jake SQL vam to generuje pro nacteni te relace? >>> Pokud si dobre pamatuji je Hibernate citlivy na >>> poradi sloupcu v many-to-one, zkuste prohodit key_id >>> a appkey_id. >>> >>> Lukas >>> >>> >>> Dušan Mamrilla wrote: >>>> Zdravim, >>>> >>>> Mam problem s vysledkom mapovania jednosmernej >>>> one-to-one asociacie. Priklad mapovania: >>>> >>>> <class name="CardReaderAppKey" >>>> table="hsm_cardreader_appkey"> >>>> <composite-id> >>>> <key-property name="tokenId" column="token_id"/> >>>> <key-property name="appId" column="app_id"/> >>>> <key-property name="appKeyId" >>>> column="appkey_id"/> >>>> <key-many-to-one name="cardReader" >>>> class="CardReader" column="cr_id"/> >>>> </composite-id> >>>> <property name="keyId" column="key_id" >>>> not-null="true"/> >>>> <property name="confirmed"/> >>>> <many-to-one name="applicationKey" >>>> class="ApplicationKey" insert="false" update="false" >>>> unique="true" not-null="true"> >>>> <column name="token_id"/> >>>> <column name="app_id"/> >>>> <column name="key_id"/> >>>> <column name="appkey_id"/> >>>> </many-to-one> >>>> </class> >>>> >>>> >>>> Problem nastava pri listovani [ list() hibernate >>>> metoda] objektov CardReaderAppKey. Vratene objekty >>>> nemaju nainicializovanu vlastnost applicationKey >>>> napriek tomu, ze z databazy su tieto objekty >>>> fetchnute ( vycitane z hibernate logu). Ocakaval by >>>> som ze bude nastavene cglib proxy. >>>> pouzivam hibernate 3.2.3.GA <http://3.2.3.GA>, >>>> java6, spring 2.0.6, cglib-nodep.2.1_3. Fetch a lazy >>>> su nastavene na defaultne hodnoty. >>>> >>>> Googlil som, skusal som a nepomohlo :| . Hadam ma >>>> niekto z vas nakopne spravnym smerom. >>>> >>>> Dik. >>> >>> >> >> > > > -- Jiří Mareš (mailto:[EMAIL PROTECTED]) ČSAD SVT Praha, s.r.o. (http://www.svt.cz) Czech Republic
