2016-07-11 51 views
0

Ich versuche, ein Problem zu lösen, wo ich einige generische Hibernate-Code zum Abrufen von Datensätzen aus einer Auswahl von SQL-Tabellen schreiben möchte. Ich brauche ein paar Spalten von jeder Tabelle, und aufgrund einiger vorhandener Tech-Schulden speichern die Spalten in einigen Tabellen gleiche/ähnliche Daten mit leicht unterschiedlichen Spaltennamen.Verwenden von Hibernate ohne Zuordnung zu einer bestimmten Klasse

Der Ansatz, den ich befolge, verwendet die API createSQLQuery (gefunden in org.hibernate.Session) und gibt einige benutzerdefinierte Abfragen weiter.

Das gibt mir eine Liste von Listen zurück.

[["val 1", "val 2", "val 3"], ["val 4", "val 5", "val 6"]] 

Ich möchte, dass dies mehr wie ein Wörterbuch mit Schlüsseln aussieht, die Spaltennamen sind. Ich kann das natürlich selbst programmieren. Ist es jedoch möglich, dass Hibernate mir das gibt, ohne auf bestimmte Klassen zugreifen zu müssen?

+0

ich weiß nicht, ob dies in Ihrem Fall arbeiten, aber haben Sie versucht, 'query.setResultTransformer (AliasToEntityMapResultTransformer.INSTANCE); '? Dies ergibt ein 'List >' Ergebnis. – Apostolos

+0

Genau das habe ich gebraucht! Bitte gehen Sie weiter und posten Sie das als Antwort, und ich werde es als die richtige Antwort markieren. = D – Beebunny

+0

froh, dass es funktioniert hat :) – Apostolos

Antwort

1

Bitte versuchen Sie die ResultTransformer bei Ihrer Anfrage Einstellung:

query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE); 

dies ein Ergebnis vom Typ haben List<Map<String,Object>>