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();
相关推荐
踏浪无痕1 分钟前
k8s发布服务,nacos未服务未下线紧急处理流程
后端
TYKJ0232 分钟前
物理安全:顶级机房为什么需要刷脸+指纹+工牌
后端
程序员黑豆8 分钟前
AI全栈开发 - Java:注释
前端·后端·ai编程
摇滚侠9 分钟前
Spring MVC 不是一个单独的框架,是 Spring 框架的一个模块
java·spring·mvc
阿正的梦工坊12 分钟前
【Rust】04-借用、引用与切片
java·数据库·rust
小二·25 分钟前
Spring Boot 3 + Vue 3 全栈开发实战
vue.js·spring boot·后端
devilnumber30 分钟前
静态代理 & 动态代理:实战运用 + 场景区别 + 怎么选
java·开发语言·代理模式
码农飞哥34 分钟前
Spring Boot 多角色权限隔离实战:接口层+路由层+UI层三层防御,杜绝生产数据泄露
spring boot·状态模式·架构设计·系统设计·权限控制
Upsy-Daisy37 分钟前
Hermes Agent 学习笔记 02:安装、配置与第一次运行
java·前端·数据库
SuperArc199939 分钟前
SpringBoot+Slf4j+Log4j2+mybatis 日志整合
spring boot·mybatis·log4j2·slf4j·日志整合