MyBatis参数索引超出范围

菲科

我正在尝试将此查询写入MyBatis

    (select * from table1 where field1 like '%"name":"appname"%' limit 1)
    union all
    (select * from table2 where field1 like '%"name":"appname"%' limit 1)
    limit 1

所以我创建了这个注释:

@Select({
    "(select * from table1 where field1 like '%\"name\":\"#{name,jdbcType=VARCHAR}\"%' limit 1)",
    "union all",
    "(select * from table2 where field1 like '%\"name\":\"#{name,jdbcType=VARCHAR}\"%' limit 1)",
    "limit 1"
})
@Results({
    @Result(column="ID", property="id", jdbcType=JdbcType.INTEGER, id=true)
})
Object hasName(@Param("name")String name);

但是当我运行它时,我得到了这个异常:

无法设置用于映射的参数:ParameterMapping {property ='name',mode = IN,javaType = class java.lang.String,jdbcType = VARCHAR,numericScale = null,resultMapId ='null',jdbcTypeName ='null',expression = '空值'}。原因:org.apache.ibatis.type.TypeException:使用JdbcType VARCHAR为参数#1设置非null时出错。尝试为此参数或其他配置属性设置不同的JdbcType。原因:java.sql.SQLException:参数索引超出范围(1>参数数量,为0)。

我可以这样映射注释吗?我不想为此使用XML。

菲科

我决定将部分查询从

field1 like '%\"name\":\"#{name,jdbcType=VARCHAR}\"%'

field1 like #{name,jdbcType=VARCHAR}

并在Java中更改了参数名称

parameter = "%\"name\":\"" + parameter + "\"%";

我遵循了我发现帖子中的解释

'%'||${specific_string}||'%'

或者

#{do_it_in_java}

或者

someFunctionOrProc(#{specific_string})函数/过程将在哪里处理它。如果您在多个SqlMaps中经常使用它,那么我可能会走这条路。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

索引超出范围异常与参数超出范围异常

来自分类Dev

SQLException参数索引超出范围

来自分类Dev

MySQL PreparedStatement:参数索引超出范围

来自分类Dev

参数索引超出范围MySQL PreparedStatement?

来自分类Dev

索引超出范围

来自分类Dev

索引超出范围

来自分类Dev

参数超出范围

来自分类Dev

参数1无效:参数索引超出范围。Java之春

来自分类Dev

ASP.NET GridView DataKeys错误-参数超出范围索引超出范围

来自分类Dev

使用参数创建新线程时索引超出范围?

来自分类Dev

HIbernate Envers @AuditMappedBy导致SQLException:参数索引超出范围

来自分类Dev

IndexError:列表索引超出范围Python参数输入

来自分类Dev

java.sql.SQLException:参数索引超出范围

来自分类Dev

使用参数创建新线程时索引超出范围?

来自分类Dev

HIbernate Envers @AuditMappedBy导致SQLException:参数索引超出范围

来自分类Dev

Java和SQL prepareStatement错误(参数索引超出范围)

来自分类Dev

Java更新sql参数索引超出范围

来自分类Dev

MongoDB。索引超出范围

来自分类Dev

subListString索引超出范围

来自分类Dev

indexerror:索引超出范围

来自分类Dev

矩阵,索引超出范围

来自分类Dev

数组索引超出范围

来自分类Dev

索引超出范围SwiftUI

来自分类Dev

索引超出范围| 蟒蛇

来自分类Dev

数组索引超出范围

来自分类Dev

controllerDidChangeContent索引超出范围

来自分类Dev

索引超出范围,错误

来自分类Dev

列表索引超出范围

来自分类Dev

列表索引超出范围