java - 使用 jpa、jasper 报告进行不同查询

标签 java jpa jasper-reports

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

通过将字段指定为这三个属性名称来设计 jrxml。如果我将 jpa 查询指定为“来自用户”,那么它工作正常并给出结果。但我想要 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。它在 for 循环语句中显示此异常。我是 JPA 的新手。您能否解释一下如何迭代该对象列表。

最佳答案

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

您很可能需要使用分组依据,

按 u.userId、u.userName、u.password 从用户 u 组中选择 u.userId、u.userName、u.password

关于java - 使用 jpa、jasper 报告进行不同查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10495872/

相关文章:

java - IntelliJ Idea 生成源

java - JPA与ORACLE插入空错误

java - 如何将 false boolean 值作为 null 或 'N' 从属性转换器发送到数据库

jasper-reports - 如何创建行号(iReport)

java - 使用堆栈java测试方程式中的括号

java - 尝试用java创建一个移动的 Sprite ,但有残像

android - 使用什么数据持久化方法?

java - OpenERP Jasper Reports导入外部库

java - 如何以编程方式将 JasperViewer 保存到文件/流?

java - Arquillian 中的多个容器错误