J'ai une table sur la base de données et je veux charger seulement quelques colonnes du jeu de résultats, car l'objet principal mappé dans Hibernate a une relation avec lui-même et l'objet est très gros . Je définissais une requête SQL native dans le fichier HBM:Charger uniquement certaines colonnes avec des requêtes SQL natives Hibernate
<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>
Cette requête échoue cependant avec l'erreur: ne pouvait pas lire la valeur de la colonne de jeu de résultats: RAWDATA1_14_0_; Nom de la colonne non valide Erreur SQL: 17006, SQLState: null, car Hibernate essaie de charger tous les champs du jeu de résultats. J'ai également trouvé un bogue dans Hibernate JIRA (http://opensource.atlassian.com/projects/hibernate/browse/HHH-3035). Quelqu'un sait comment accomplir cette tâche avec une solution de contournement?
Une question similaire pourrait être utile http://stackoverflow.com/questions/4186828/doubt-regarding-jpa-namedquery/4191511 –
Pourquoi ne faites-vous pas simplement un mappage classique des colonnes dont vous avez besoin, y compris RAWDATA_ID? Mappez-les sur un objet, puis travaillez sur cet objet pour récupérer uniquement le champ DESCRIPTION. – bluish
Je ne peux pas le faire car la relation est la suivante: RawData -> RawData, donc RawData est lui-même lié. –