2

Criteriaユーザー テーブルがあります。キーとして UserId を、値として User オブジェクトを使用してマップを返す Hibernateを作成するにはどうすればよいですか?

4

3 に答える 3

1

クエリは常にリストを返すため、これは可能ではないと思います: http://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/Criteria.html#list () または特別な単一の要素をケースに入れます。

マップを返すことができるメソッドはありません。

そのため、Session を上書きして map() メソッドも持つ特別な Criteria を作成するなどのハックがなければ、やりたいことができません。

リストを返してマップに変換するだけです。

于 2012-09-19T18:23:21.640 に答える
0

Google グァバの使用

ImmutableMap<Long, User> immutableMap = Maps.<Long, User>uniqueIndex(hibernateSession.createCriteria(User.class).list(),
                    new Function<User, Long>() {
                        public Long apply(User input) {
                            return input.getId();
                        }
                    });
于 2012-09-19T18:28:56.473 に答える