Spring with Querydsl :java.lang.ClassCastException [英] Spring with Querydsl :java.lang.ClassCastException

查看:55
本文介绍了Spring with Querydsl :java.lang.ClassCastException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试迭代 Querydsl 的查询结果.为了迭代查询结果,我用于每个循环.但我收到了类转换异常.

I am trying to iterate query result of Querydsl. For iterating query result I am using for each loop.But I am getting class cast exception.

我想要 nBuildId 来查找建筑表中的建筑名称.那么我如何迭代这个 List 以获取列.

I want nBuildId for finding building name which is in building table. So how I can iterate this List<Tuple> for getting column.

我是这样试的

 public  List<Tuple> loadUnclamiedRoomGrid(Integer nBuildId, String sFloor) {

        QRoom room = QRoom.room;        
        QRoomDepartmentMapping roomDepartmentMapping = QRoomDepartmentMapping.roomDepartmentMapping;

        JPAQuery<Tuple> query = new JPAQuery<Tuple>(em);

        query
             .from(room) 
             .where(room.nRoomId.notIn
                         (JPAExpressions.select(roomDepartmentMapping.nRoomId)
                               .from(roomDepartmentMapping)
                         )
               );

        if (nBuildId != null && nBuildId !=0) {
            query.where(room.nBuildId.eq(nBuildId));
        }

        if(sFloor != null) {
            query.where(room.sFloor.eq(sFloor));
        }   

        List<Tuple> queryResult = query.fetch();

        for(Tuple row : queryResult) {

            System.out.println("Build Id " +row.get(room.nBuildId));
        }

    return queryResult; 

    }

错误

message: "com.spacestudy.model.Room cannot be cast to com.querydsl.core.Tuple",
Exception: "java.lang.ClassCastException" 

推荐答案

 public  List<Room> loadUnclamiedRoomGrid(Integer nBuildId, String sFloor) {

        QRoom room = QRoom.room;        
        QRoomDepartmentMapping roomDepartmentMapping = QRoomDepartmentMapping.roomDepartmentMapping;

        JPAQuery<Room> query = new JPAQuery<Room>(em);

        query
             .from(room) 
             .where(room.nRoomId.notIn
                         (JPAExpressions.select(roomDepartmentMapping.nRoomId)
                               .from(roomDepartmentMapping)
                         )
               );

        if (nBuildId != null && nBuildId !=0) {
            query.where(room.nBuildId.eq(nBuildId));
        }

        if(sFloor != null) {
            query.where(room.sFloor.eq(sFloor));
        }   

        List<Room> queryResult = query.fetch();

        for(Room row : queryResult) {

            System.out.println("Build Id " + room.nBuildId);
        }

    return queryResult; 

    }

这篇关于Spring with Querydsl :java.lang.ClassCastException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆