SpringBoot 3.5 JPA投影

背景

java.lang.ClassCastException: class java.math.BigDecimal cannot be cast to class java.lang.Integer (java.math.BigDecimal and java.lang.Integer are in module java.base of loader 'bootstrap') 报错### 问题分析

当使用JPA投影查询时,若数据库字段类型为DECIMAL/NUMERIC(映射为BigDecimal),但试图强制转换为Integer,会触发ClassCastException。以下是解决方案和示例。


解决方案:修改投影接口字段类型

确保投影接口的返回类型与数据库字段类型匹配:

复制代码
public class ProductDTO {
    private String name;
    private Integer price;

    public ProductDTO(String name, Integer price) {
        this.name = name;
        this.price = price;
    }
    // Getters
}

Repository查询

复制代码
@Query("SELECT (p.name, p.price FROM product p",nativeQuery = true)
List<ProductDTO> findProductDTOs();
相关推荐
IT研究室5 分钟前
最新计算机毕业设计选题推荐-基于spring boot的教育学习平台-网站-文档指导-Java-springboot
java·spring boot·课程设计
亚林瓜子7 分钟前
Spring Boot 集成 ip2region 离线 IP 库实战指南
java·spring boot·后端·ip·ip2region
盛世宏博智慧档案34 分钟前
恒湿净化一体机联动开发:档案馆温湿度阈值判断与启停控制实践
java·后端·struts·恒湿机·加湿除湿消毒净化一体机
兔子零102437 分钟前
FastAPI 零基础入门教程:写过 Node.js,就能轻松学会 Python 后端开发(一)
前端·后端·python
Thneonl40 分钟前
ZK、etcd、Consul 怎么选:差别不在共识,在壳
后端·架构
vipxieliang42 分钟前
ValidX 应用于 HR系统员工信息验证:入职、离职、社保数据
java·spring boot·后端
花间相见1 小时前
【计算基础|网络15】【上手】Socket 网络编程:亲手写 TCP/UDP 程序
后端
huaweichenai1 小时前
spring boot实现base64上传
java·spring boot·后端
ThinkerQAQ_1 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
后端
Bazingga1 小时前
让Agent的挣扎可见:执行轨迹面板与生成统计行
后端