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();
相关推荐
m0_7482495410 分钟前
Java 语言提供了八种基本类型【文123】
java·开发语言·python
移幻漂流14 分钟前
Kotlin 如何解决 Java 的核心痛点:现代语言特性的深度剖析
java·python·kotlin
leikooo16 分钟前
ShardingSphere 下更新分片键导致的失败问题分析与解决
java·spring·apache
a程序小傲19 分钟前
中国邮政Java面试被问:Netty的FastThreadLocal优化原理
java·服务器·开发语言·面试·职场和发展·github·哈希算法
jay神23 分钟前
基于Java的水果网上订购平台
java·mysql·vue·springboot·计算机毕业设计
小北方城市网26 分钟前
SpringBoot 集成 MyBatis-Plus 实战(高效 CRUD 与复杂查询):简化数据库操作
java·数据库·人工智能·spring boot·后端·安全·mybatis
小白不会Coding27 分钟前
一文详解JVM中类的生命周期
java·jvm·类的生命周期
醇氧28 分钟前
java.lang.NumberFormatException: For input string: ““
java·开发语言·spring
sww_102633 分钟前
智能问数系统(一):高质量的Text-to-SQL
java·人工智能·ai编程
win x38 分钟前
文件操作与io总结
java