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