Hab jetzt ein SQLQuery versucht, jedoch scheitere ich
Erstmals fang ich es etwas komisch, dass die Methode createSQLQuery nur mehr einen String braucht und man den Alias und den Klassennamen nur mehr als addEntity hinzufügen kann (diese Implementierung fand ich in keiner Docu...)
Und sobald ich nun bestimmte Spalten auslesen will, bekomme ich den Fehler:
Code:
exception
javax.servlet.ServletException: #{queryHelper.listSearchResults}: javax.faces.el.EvaluationException: org.hibernate.exception.SQLGrammarException: could not execute query
javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)
root cause
javax.faces.FacesException: #{queryHelper.listSearchResults}: javax.faces.el.EvaluationException: org.hibernate.exception.SQLGrammarException: could not execute query
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:78)
javax.faces.component.UICommand.broadcast(UICommand.java:312)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
Meine Code:
Code:
String sql ="Select e.PA_ID as {e.paId} from ET_EDI_Partner {e}";
Query q = session.createSQLQuery(sql)
.addEntity("e",EtEdiPartner.class);
querylist=q.list();
Komischerweise hat dies funktioniert:
Code:
String sql ="Select {e.*} from ET_EDI_Partner {e}";
Query q = session.createSQLQuery(sql)
.addEntity("e",EtEdiPartner.class);
querylist=q.list();
Langsam fang ich bei Hibernate wirklich zum Verzweifeln an, weil leider nichts so funktioniert, wie ich es mir vorstelle...
Am Ende soll dann folgendes Query rauskommen:
Code:
Select e.s_id, c.company, e.location, b.edisector, e.actisname, g.gw_name, g.ssid, g.sfid, a.method from et_edi_partner e
Inner Join et_company c on e.CO_ID = C.CO_ID
Inner Join et_edisector b on e.EDI_ID=b.EDI_ID
Inner Join et_gateway g on e.GW_ID = g.gw_id
Inner Join et_access_method a on g.a_id = a.a_id
Bitte um Hilfe!
Hibernate version: 3.0.5
Mapping documents:Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping schema="EDITOOLS" package="com.magnasteyr.editool.hibernate">
<class name="EtEdiPartner" dynamic-update="true" dynamic-insert="true" lazy="false" table="ET_EDI_PARTNER">
<id name="paId" type="long" unsaved-value="null">
<column name="PA_ID" not-null="true" sql-type="NUMBER"/>
<generator class="sequence"/>
</id>
.....
....
</class>
</hibernate-mapping>