我正在使用spring data jpa创建微服务。在存储库中,我正在使用JPQL
查询。使用以下代码,我可以获得数据集。但是我想对数据集进行迭代以获取进一步的逻辑。
对于迭代,我使用了for each
,但是当我为每个循环使用时,却遇到了错误"java.util.HashMap cannot be cast to com.spacestudy.model.RoomDepartmentMapping",
public Set<RoomDepartmentMapping> loadStatusOfRooms() {
Set<RoomDepartmentMapping> roomDeptMapping = roomDeptMappingRepo.findStaus();
return roomDeptMapping;
}
}
存储库
@Repository
public interface RoomDepartmentMappingRepository extends JpaRepository<RoomDepartmentMapping, Integer> {
@Query("select new map(roomDeptMap.sStatus as sStatus) from RoomDepartmentMapping as roomDeptMap")
Set<RoomDepartmentMapping> findStaus();
}
结果
[
{
"sStatus": "A"
},
{
"sStatus": "I"
},
{
"sStatus": "R"
}
]
预期结果
[
{
"sStatus": "Accepted"
},
{
"sStatus": "In Progress"
},
{
"sStatus": "Remaining"
}
]
为了获得超出预期的结果,我尝试对Set和Set进行迭代使用的数据集。但是我无法使用以下循环进行迭代。
对于每个循环
for(RoomDepartmentMapping roomDeptMappingObj:roomDeptMapping) {
System.out.println(roomDeptMappingObj);
}
谁能告诉我为什么我不能为每个循环迭代set? 或请提出任何其他方法来做到这一点。
答案 0 :(得分:0)
基于方法的名称,我将假定您需要所有可用的状态值。 查询将是:
@Query("select distinct rdm.sStatus from RoomDepartmentMapping rdm")
Set<String> findStatus();