Ahoj,

podle 3. to vrati objekt ze session cache, ktery to ma od vas nastavene na null.

  Lukas


Dušan Mamrilla wrote:
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.








Odpovedet emailem