0

を使用してireport-4.5.0,spring3.0.5RELEASE,jpa2います。User という名前のエンティティ クラスがあり、userId、userName、password.I のような属性があります。

これらの 3 つの属性名としてフィールドを指定して、jrxml を設計しました。jpa クエリを From USer として指定すると、正常に動作し、結果が得られます。しかし、私はuserNameの個別の値が必要です(userName列は重複した値も許可します)ので、jpaQueryを次のように指定しました

SELECT userId,DISTINCT(userName),password FROM User 

その後、結果が得られません。クエリの問題は何ですか。

こんにちは、私が使用しているコードを提供しています

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;

ここで ClassCastException:java.lang.String cannot be cast to User.for ループ ステートメントでこの例外が表示されます。JPA を初めて使用します。

4

1 に答える 1

1

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

ほとんどの場合、次のグループを使用する必要があります。

SELECT u.userId、u.userName、u.password FROM User u group by u.userId、u.userName、u.password

于 2012-05-08T13:23:34.837 に答える