3

Hibernate group-by クエリの一部としてオブジェクトのリストを選択する方法を理解しようとしています。私はそれをより難しい方法で行う方法を知っていますが、同じことを達成する特別なシュガー構文があるかどうかに興味があります.

基本的に、私はこの構造のクエリを持っています:

select com.myapp.domain.TagSummary(
   tag.id, tag.term, tag.description, tag.synonyms, count(user)
)
from User user
   join user.tags tag

tag.synonymsとして保存したいと思いList<Tag>ます。それは可能ですか、それともクロス積をクエリして、クエリ結果が戻ってきた後に手動で分離する必要がありますか?

あるいは、最終的に本当に欲しいのは、コンマで区切られた同義語のリストです。したがって、タグがspringであり、同義語の用語spring-frameworkおよびspring-framework-3.1がある場合、コンストラクターに文字列 を入れるとよいでしょうspring-framework, spring-framework-3.1。それは可能ですか?

編集: group_concat() を使用して機能の後半を実現できることを学びましたが、MySQL でのみ使用できます。hsqldbでも利用できるようにする方法はありますか? Spring 3.1 では、この関数を Hibernate に追加するにはどうすればよいですか? で何かを呼び出す必要があるConfigurationことはわかっていますが、どの Bean でアクセスするかはわかりません。

4

1 に答える 1

0
for (Object[]> result : query.list()) {    
    Tag tag = (Tag ) result[3];
    User user = (User) result[4];
}

このリンクから詳細情報を取得できます

https://derrickpetzold.com/p/in-and-group-by-count-hibernate/

于 2012-12-04T09:45:51.257 に答える