项目工程是Spring Boot
。问题发生在mybatis->mapper的sql配置文件中。
nested exception is org.apache.ibatis.exceptions.PersistenceException:
Error updating database.
Cause: java.lang.IllegalArgumentException:
Mapped Statements collection does not contain value for .module.basic.dao.DicDao.insert
Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for .module.basic.dao.DicDao.insert
其中
Mapped Statements collection does not contain value
这句话很关键,映射语句不包含后面这个方法。我反复检查了下.xml
文件,发现我写的是
<insert id="create" parameterType="DicModel">
INSERT INTO ay_p_dictionary_value
(id,<include refid="columns" />,create_at)
values (
#{id},
#{tableName},
#{valueName},
#{valueCode},
#{valueParentId},
#{updateAt},
#{createAt}
)
</insert>
很容易发现大意的我在命名的时候没有遵循规则,胡乱起了个顺手的名字,改代码的时候又因为insert
和create
的意思接近而忽视。所以正确的,和我Dao
层匹配的应该是
<insert id="insert" parameterType="DicModel">
遇到这个问题的小伙伴可以从这个方面来检查一下。如果之后还遇到这个问题,再补充解决方案。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。