2012-04-20 5 views
1

次のJPAクエリを使用していますが、java.lang.IllegalArgumentExceptionを取得しています。複数の戻り値例外を持つクエリに対してTypedQueryを作成できません。複数の戻り値を持つクエリに対してTypedQueryを作成できません

TypedQuery<RaBdrRating> uQuery = 
    (TypedQuery<RaBdrRating>)entityManager.createQuery(" 
    SELECT r.activePackage,SUM(r.duration),SUM(r.charge),COUNT(r) 
    FROM RaBdrRating r WHERE r.callType = :callType 
    and r.startDate between :startDate and :endDate 
    GROUP BY r.activePackage",RaBdrRating.class); 

uQuery.setParameter("callType", model.getCallType()); 
uQuery.setParameter("startDate",startDate); 
uQuery.setParameter("endDate",endDate); 
List<RaBdrRating> listOfPackages = uQuery.getResultList(); 

いずれかが.....私はJPAに新しいですし、私は私に教えてください、問題が何であるかを取得し、here.Ifいずれかをstruckedアイデアを持っていないです、私のクエリで間違っているものを教えてもらえます。

+0

同様のものは、http://stackoverflow.com/a/10010154/366964とhttp://stackoverflow.com/a/4536802/366964を参照してください。 –

答えて

2

私は同じエラーを行く:あなたが持っている

Select e.fieldA, e.fieldB, e.fieldC From Entity e 

は、このようなクエリを持つ: は、要求された結果タイプ

ソリューションを使用して複数のリターンでクエリのTypedQueryを作成できませんクエリで指定されたパラメータを持つコンストラクタを宣言する:

package somepackage; 

    public class Entity { 
    ... 
     public class Entity() {} 

     public class Entity(Type fieldA, Type fieldB, Type fieldC) { 
      this.fieldA = fieldA; 
      this.fieldB = fieldB; 
      this.fieldC = fieldC; 
     } 
    .... 
    } 

最後に、あなたがobjectesを作成する方法を示しているクエリ

Select NEW somepackage.Entity(e.fieldA, e.fieldB, e.fieldC) From Entity e 

を変更します。

関連する問題