Zdravim,
neviem, co to s tym suvisi, ale tu:
q.addEntity (entity.Zakazkyy.class);
mate preklep, mate Zakazkyy namiesto Zakazky

ya

Karel Nagy  wrote / napísal(a):
Dobry den,
   v desktopove aplikaci pouzivam jako persitence API Hibernate. Pro ziskavani dat pouzivam SQLQuery - "cisty" SQL a pridavam addEntity (Zakazka.class)
Pro jednoduchost mam dve entity - Zakazka a ZakazkaRozsirena, ktera je zdedena od Zakazka.
Zakazka obsahuje vsechny sloupecky tabulky ZAKAZKY z databaze.
ZakazkaRozsirena ma rozsireny SQL o ruzne sloupecky, ktere ziskavam z dalsich tabulek, ale protoze puzivam SQL dotazy, tak formou: select ZAKAZKY.*, (select max(CENA) from OCENENI) as MAX_CENA from ZAKAZKY ...

Pokud spustim kod nize, ve kterem neni vubec pouzita entita ZakazkyRozsirene - ta je pouze v konfuguracnim souboru, tak to ohlasi chybu - viz nize. Pokud z konfiguracniho souboru odstranim radek s mapovanim ZakazkyRozsirene, tak to probehe v poradku.
Nevite v cem by mohla byt chyba? Ja uz to hledam druhy den a nemuzu na nic prijit
Diky Karel


hibernate.xml
<mapping class="entity.Zakazky"/>
<mapping class="entity.ZakazkyRozsirene"/>

Kod
Configuration configuration = new AnnotationConfiguration ().configure ("hibernate.xml");
SessionFactory sessionFactory = configuration.buildSessionFactory ();
Session session = sessionFactory.openSession ();
SQLQuery q = session.createSQLQuery ("select * from ZAKAZKY");
q.addEntity (entity.Zakazkyy.class);
List<Zakazky> l = q.list ();
session.disconnect ();
sessionFactory.close ();

Chyba
Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not execute query
       at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
       at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
       at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
       at org.hibernate.loader.Loader.doList(Loader.java:2223)
       at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
       at org.hibernate.loader.Loader.list(Loader.java:2099)
       at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
       at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
       at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
       at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
       at NewMain.main(NewMain.java:25)
Caused by: org.firebirdsql.jdbc.FBSQLException: Column name DTYPE not found in result set.
       at org.firebirdsql.jdbc.FBResultSet.findColumn(FBResultSet.java:1059)
       at org.firebirdsql.jdbc.FBResultSet.getField(FBResultSet.java:658)
       at org.firebirdsql.jdbc.FBResultSet.getString(FBResultSet.java:704)
       at org.hibernate.type.StringType.get(StringType.java:18)
       at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
       at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:189)
       at org.hibernate.loader.Loader.getInstanceClass(Loader.java:1442)
       at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1284)
       at org.hibernate.loader.Loader.getRow(Loader.java:1206)
       at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)
       at org.hibernate.loader.Loader.doQuery(Loader.java:701)
       at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
       at org.hibernate.loader.Loader.doList(Loader.java:2220)


Odpovedet emailem