No to je minimalne divny ... poslete cele mapovani. Ja pouzivam podobnou vec a bez problemu (pravda jenom v Hibernate 2.1.8).

Goo GGooo wrote:
Ahoj vsichni,

resim tady problem s hibernate 3.0. Mam class Record a jeji dva
potomky MessageRecord a Exception Record. Mapovani je zhruba takhle:

<class name="Record">
    <id name="id"><generator class="native" /></id>
    <property name="message" />
</class>

<joined-subclass extends="Record" name="MessageRecord">
    <key column="id" />
    <property name="title" />
</joined-subclass>

<joined-subclass extends="Record" name="ExceptionRecord">
    <key column="id" />
    <property name="severity" />
</joined-subclass>

Mam ulozeno par objektu, ktere budto muzu vybrat podle ID, to funguje,
nebo pres HQL a tam je kamen urazu. Kdyz je HQL query proste "from
Record" tak mi to sice vrati vsechny objekty, ale nedokazu zjistit
jestli se jedna o MessageRecord nebo ExceptionRecord:

        Iterator i = session.createQuery("from Record").iterate();
        while (i.hasNext()) {
            Record r = (Record) i.next();
            System.out.print(r.getId() + ": " + r.getClass() + ": "+
r.getMessage());   // *1

            if (r instanceof MessageRecord)
                System.out.print(" - MessageRecord: " +
((MessageRecord)r).getTitle());

            if (r instanceof ExceptionRecord)
                System.out.print(" - ExceptionRecord: " +
((ExceptionRecord)r).getSeverity());

            System.out.println();
        }

Vypis tohoto cyklu:
1: class pokus.Record$$EnhancerByCGLIB$$f50d8bc6: Tohle je nejaka
normalni zprava...
2: class pokus.Record$$EnhancerByCGLIB$$f50d8bc6: Tohle je vyjimecna zprava

Jelikoz oba vracene objekty jsou
pokus.Record$$EnhancerByCGLIB$$f50d8bc6 tak na ne nefunguje
"instanceof" a ja nevim ktery je ktery.

Kdyz do query dam "from MessageRecord" tak mi to poctive vrati objekty
pokus.MessageRecord$$enhancer...$$ a "instanceof" funguje, jenze ja
bych chtel vybrat vsechny objekty.

Ma nekdo tip jak na to?

Diky!

Gooo



--
Jiří Mareš (mailto:[EMAIL PROTECTED])
ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
Czech Republic

Odpovedet emailem