2012-05-08 9 views
0

私はireport-4.5.0,spring3.0.5RELEASE,jpa2を使用しています。私はユーザーとして名前付きエンティティクラスを持っていると私は、ユーザーからのようなJPAクエリを与えるnames.Ifこれらの3つの属性としてフィールドを与えることでjrxmlを設計し はuserId、 ユーザ名、 password.Ijpaとジャスパーレポートとの別のクエリ

に従うような属性を持ちますそれはうまくいっていて結果を出しています。しかし、私はuserNameのの異なる値にしたい(USERNAME列にも重複する値を許可する)ので、私はその後、私はresult.Whatを得ていないのです

SELECT userId,DISTINCT(userName),password FROM User 

としてjpaQueryを与えているクエリの問題です。

こんにちは、ここで私はClassCastExceptionが取得しています。ここ

public User getUsers() throws Exception{ 
Query uQuery = entityManager.createQuery("SELECT u.userId,u.userName,u.password FROM User u GROUP BY u.userId,u.userName,u.password"); 
     List <User>listOfUsers = uQuery.getResultList(); 
     if (listOfUsers == null) { 
      throw new ResourceNotFound(); 
     } 
     for (Iterator iterator = listOfUsers.iterator(); iterator.hasNext();) { 
      User userList = (User)iterator.next(); 

     } 

     return userList; 

使用していたコードを与えている:java.lang.Stringでは、forループ文でこの例外を示しているUser.Itにキャストすることはできません。私はJPAの初心者です。オブジェクトのリストを反復する方法を説明してください。

+0

缶誰にでも私には非常に緊急の答えをくれます。 – rupa

+0

類似のものは、選択した属性を取得するためにhttp://stackoverflow.com/a/4536802/366964を参照することができます。 –

答えて

1

JPQLまたはSQLの単一列にDISTINCTを配置することはできません。

あなたが最も可能性が高いことにより、グループを使用する必要が

、u.passwordユーザUグループからu.userId、u.userNameによって

SELECT u.userId、u.userNameは、u.password

+0

reply.Butを与えてくれて本当にありがとうございます。もうちょっと疑問があります。コードを改善しました。ちょうどそれをチェックして、どこが間違っているか教えてください。 – rupa

関連する問題