Skip to content

mybatis can not parse #{list[0][0]} correctly #2103

Open
@daodefengshang

Description

@daodefengshang

MyBatis version

3.4.4

Database vendor and version

All

Test case or example project

CREATE TABLE
TABLE_DEMO
(
ID NUMBER(6) NOT NULL,
NAME VARCHAR2(24) NOT NULL,
PRIMARY KEY (ID)
);
INSERT INTO TABLE_DEMO (ID, NAME) VALUES (1, '001');

List<Map<String, Object>> query(@param("list") List<List> list);

select id, name from table_demo where id = #{list[0][0], jdbcType=NUMERIC}

Steps to reproduce

public List<Map<String, Object>> query() {
List<List> lists = new ArrayList<>();
List li = new ArrayList<>();
li.add(1);
lists.add(li);
List<Map<String, Object>> list = mapper.query(lists);
return list;
}

Expected result

result: [{id: 1, name: "001"}]

Actual result

[org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException(AbstractHandlerExceptionResolver.java:186)]Handler execution resulted in exception: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
###Error querying database. Cause: java.lang.NumberFormatException: For input string: "0][0"
###Cause: java.lang.NumberFormatException: For input string: "0][0"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions