kotlin使用mybatis plus lambdaQuery报错

记录一下学习kotlin中遇到的问题

报错

bash 复制代码
### Error querying database.  
Cause: org.apache.ibatis.builder.BuilderException: 
Error evaluating expression 
'ew.sqlSegment != null and ew.sqlSegment != '''. 
Cause: org.apache.ibatis.ognl.OgnlException: 
sqlSegment [org.apache.ibatis.reflection.ReflectionException: 
Error parsing property name 'querySingleAnnualIncomeBudget$lambda$2'.  Didn't start with 'is', 'get' or 'set'.]

先把我的实体类贴一下

kotlin 复制代码
data class AnnualIncomeBudget(
	@TableId(type = IdType.ASSIGN_ID)
	var id: Long? = null,

	@ApiModelProperty("年份")
	var year: @NotNull(message = "[年份]不能为空") Int? = null,

	@ApiModelProperty("年初总收入预算金额")
	var totalBudget: @NotNull(message = "[年初总收入预算金额]不能为空") BigDecimal? = null,

	@ApiModelProperty("剩余开票额度")
	var remainingBudget: @NotNull(message = "[剩余开票额度]不能为空") BigDecimal? = null,

	@ApiModelProperty("创建时间")
	var createTime: @NotNull(message = "[创建时间]不能为空") LocalDateTime? = null,

	@ApiModelProperty("更新时间")
	var updateTime: @NotNull(message = "[更新时间]不能为空") LocalDateTime? = null,
)

然后时查询, 很简单

kotlin 复制代码
override fun querySingleAnnualIncomeBudget(year: Int): AnnualIncomeBudget? {
	return getOne(
		Wrappers.lambdaQuery<AnnualIncomeBudget>()
			.eq(AnnualIncomeBudget::year, year)
	)
}

直接贴解决方案

kotlin 复制代码
override fun querySingleAnnualIncomeBudget(year: Int): AnnualIncomeBudget? {
	return getOne(
		Wrappers.query<AnnualIncomeBudget>()
			.eq(AnnualIncomeBudget::year.name, year)
	)
}

放弃lambdaQuery改用query, lambdaquery最终还是会转换成string类型

Kotlin这里AnnualIncomeBudget::year他解析成一个高阶函数了

相关推荐
Interview Aid1125 小时前
TikTok OA 四题分享|半小时内 AC,题目基本都是实现题
java·开发语言·算法·面试·职场和发展
煎饼皮皮侠6 小时前
【设计】设计一个web版的数据库管理平台后端(之五) --借鉴mybatis
数据库·mybatis
CoderIsArt13 小时前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
AI情绪识别开源15 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
「QT(C++)开发工程师」16 小时前
C++ auto 用法详解
开发语言·c++
OPEN-F16 小时前
C++STL教程:容器适配器与实用工具
开发语言·c++
yaoxin52112317 小时前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言
OPEN-F17 小时前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
有点。17 小时前
C++二叉搜索树进阶
开发语言·c++