Ich habe eine Tabelle in der Datenbank und ich möchte nur einige Spalten aus der Ergebnismenge laden, weil das Hauptobjekt in Hibernate eine Beziehung mit sich selbst hat und das Objekt sehr groß ist . Ich definierte eine native SQL-Abfrage in der hbm Datei:Laden Sie nur einige Spalten mit Hibernate nativen SQL Abfragen
<sql-query name="query">
<return alias="r" class="RawData"/>
<![CDATA[
SELECT DESCRIPTION as {r.description}
FROM RAWD_RAWDATAS r
WHERE r.RAWDATA_ID=?
]]>
</sql-query>
Diese Abfrage jedoch mit Fehlern fehlschlägt: konnte nicht Spalt Wert von Ergebnismenge gelesen: RAWDATA1_14_0_; Ungültiger Spaltenname SQL-Fehler: 17006, SQLState: null, weil Hibernate versucht, alle Felder aus der Ergebnismenge zu laden. Ich habe auch einen Fehler in Hibernate JIRA gefunden (http://opensource.atlassian.com/projects/hibernate/browse/HHH-3035). Kann jemand diese Aufgabe mit einer Problemumgehung lösen?
Ähnliche Fragen könnten helfen http://stackoverflow.com/questions/4186828/doubt-regarding-jpa-namedquery/4191511 –
Warum machen Sie nicht einfach eine klassische Zuordnung der Spalten, die Sie benötigen, inklusive RAWDATA_ID? Ordne sie einem Objekt zu und arbeite dann an diesem Objekt, um nur das DESCRIPTION-Feld abzurufen. – bluish
Ich kann dies nicht tun, weil die Beziehung die folgenden ist: RawData -> RawData, so dass RawData selbst verknüpft ist. –