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)
|