2

id/name/age/gender というフィールドを持つ pojo Person があります。

Person.id をキーとして、Person オブジェクトを値として、HQL から返されるマップを取得したいと考えています。HQL はどのように見えるべきですか?

私はこれを試しました:

select new map(p.id,new Person(p.name,p.age,p.gender)) from Person

これは、必要な結果を得る正しい方法ですか? 受信した結果からマップを準備するための Java ベースの操作を避けたいです。

4

2 に答える 2

3

この HQL を使用します。

select new map(p.id, p ) from Person p
于 2013-10-12T09:43:48.297 に答える
0

いいえそうではありません。コンストラクターが実行される行ごとにselect new ...、行ごとに 1 つのインスタンスを取得し、query.list() はこれらのインスタンスのリストを提供します。

リストの各行を読み取ってマップに配置するための Java コードを作成する必要があります。それはほんの数行のコードです。(または、id 列とリストをパラメーターとして受け入れるコンストラクターを使用して独自のマップ実装を作成し、そこで操作を行いますが、それはおそらくより複雑です。)

于 2012-05-16T10:14:16.980 に答える