使用jpa,jasper报告进行独特查询

时间:2012-05-08 09:20:41

标签: java jpa jasper-reports

我正在使用ireport-4.5.0,spring3.0.5RELEASE,jpa2。我有一个名为User的实体类,其属性如下     用户身份,     用户名,     密码。我

通过将字段作为这三个属性名称来设计jrxml。如果我将jpa Query作为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无法强制转换为User.It在for循环语句中显示此异常。我是JPA的新手。您可以解释如何迭代该对象列表。

1 个答案:

答案 0 :(得分:1)

您不能将DISTINCT放在JPQL或SQL中的单个列上。

你很可能需要使用一个小组,

通过u.userId,u.userName,u.password选择u.userId,u.userName,u.password FROM User u group