当前位置: 首页 > news >正文

java: Can‘t generate mapping method with primitive return type

报错 java: Can't generate mapping method with primitive return type

  • 问题描述
  • 原因分析
  • 错误原因说明
  • 解决方案

问题描述

在启动 SpringBoot 项目时,遇到以下错误:
java: Can’t generate mapping method with primitive return type.
请添加图片描述

原因分析

错误提示 Can’t generate mapping method with primitive return type 表明代码中存在返回值为基本数据类型(如 int、boolean)的方法,但框架无法生成对应的映射实现。这通常与 MyBatis 的 SQL 映射方法相关,因为 MyBatis 需要通过 Mapper 接口生成代理实现类。

错误原因说明

org.mapstruct.Mapper是 MapStruct 框架的注解,用于对象映射
org.apache.ibatis.annotations.Mapper是 MyBatis 的注解,用于声明数据库映射接口
MapStruct 是对象映射工具,其 @Mapper 注解用于生成 JavaBean 转换代码,不支持数据库操作
MyBatis 的 @Mapper 注解用于声明 DAO 接口,需配合 SQL 映射文件或 @Select 等注解使用
当错误引入 MapStruct 的 @Mapper 时,MyBatis 无法识别这些接口为 DAO,导致映射方法生成失败

维度MapStruct @MapperMyBatis @Mapper
所属框架对象映射工具(属性复制)数据持久层框架(SQL 执行)
注解路径org.mapstruct.Mapperorg.apache.ibatis.annotations.Mapper
核心作用生成类型安全的 Bean 转换代码声明数据库操作接口
处理阶段编译期(通过 Annotation Processor 生成实现类)运行期(通过 Spring 动态代理生成 DAO 实现)
返回值约束必须为对象类型(如 DTO、Entity)支持任意类型(包括基本类型、集合、自定义对象)
典型应用场景UserDTO toDTO(User entity)@Select(“SELECT COUNT(*) FROM users”) int count()

解决方案

检查项目代码后,发现 Mapper 接口错误地使用了非 MyBatis 的@Mapper注解:

import org.mapstruct.Mapper; // 错误的注解引入
import org.apache.ibatis.annotations.Mapper; // 正确的MyBatis注解

在这里插入图片描述

http://www.xdnf.cn/news/586459.html

相关文章:

  • 高级SQL技巧:时序数据查询优化与性能调优实战
  • 天文数据处理:基于CUDA的射电望远镜图像实时去噪算法(开源FAST望远镜数据处理代码解析)
  • github cli主要用途,优势,和git的区别
  • PageHelper分页原理解析:从源码到MySQL方言实现
  • 基于开源AI大模型与智能硬件的零售场景服务创新研究——以AI智能名片与S2B2C商城小程序源码融合为例
  • [安全清单] Linux 服务器安全基线:一份可以照着做的加固 Checklist
  • 用Python和Backtrader库实现均值回归策略解析
  • 角度回归——八参数检测四边形RSDet
  • MIPI摄像头linux驱动开发步骤及说明
  • Python 数据分析基础
  • 差分探头匹配电容选择方法
  • [Linux]Linux多线程编程技术探讨(代码示例)
  • LeetCode[222]完全二叉树的节点个数
  • GraphPad Prism工作表的基本操作
  • python、R、shell兼容1
  • 深入解析Java泛型:从定义到实战应用
  • LangChain文档加载器实战:构建高效RAG数据流水线
  • 使用RUST在Arduino上进行编程(MacOS,mega板)
  • 记录Pycharm断点调试的一个BUG
  • 6.13.拓扑排序
  • 结课作业自选01. 内核空间 MPU6050 体感鼠标驱动程序(二)(完整实现流程)
  • 网络编程 之 从BIO到 NIO加多线程高性能网络编程实战
  • 嵌入式学习笔记 - Void类型的指针
  • FFmpeg解码器配置指南:为什么--enable-decoders不能单独使用?
  • YOLOv11 性能评估与横向对比
  • Vault应用广吗?我是否有学习使用的必要,难不难?
  • 解码工业转型密码,R‘AIN SUITE赋能制造业价值跃迁
  • labview设计一个虚拟信号发生器
  • 齿轮,链轮,同步轮,丝杆传动sw画法
  • 训练一个线性模型