问题描述
在学MyBatis时,在IDEA环境下,Mapper映射文件中有一个地方总是误报:
使用Alt+Enter快捷修复时,出现了这个选项:
按下它即做了快捷修复,此后确实不再误报了,但是带来了更严重的问题。首先这个文件里SQL的语法高亮不见了,其次SQL完全没有语法检查了(也就更没有关键字提示了),一片白的SQL非常容易写错,宁愿误报也不想出现这种状况。
但是因为是使用Alt+Enter快捷修复了,根本不知道到底修改了哪里的配置。找遍了百度,完全没有恢复这个配置的相关资料。
解决
根据这个选项的提示,能够定位设置的位置,一定是在Settings->Editor->Language Injection下面。经过两次重装IDEA配置,发现确实在这里少了一个injection。
使用了快捷修复后,重装配置前:
重装配置后:
可以看到下方,快捷修复使得少了一个injection,本来是117个变成了116了。然而非常痛苦的是,这一页面根本没有重置这一选项,我将快捷修复后的该页面截图下来,与正确的117个逐个比较,最终确定是少了这样一个配置:
一旦做了前面的快捷修复,这个页面将删除该DTD配置(而不是取消勾选),所以如果要恢复,就要点击右上角绿色加号手动配置它:
备份一下这个DTD的URL:
http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd|http://mybatis.org/dtd/mybatis-3-mapper.dtd
花了不少时间,重装了两次配置才搞清楚这个问题,IDEA中的Alt+Enter真的应该慎用。它虽然能快捷修改设置,但却让使用者搞不清楚到底修改了哪里,如果想改回来不知道从何入手,甚至不知道发生了什么改动。
来源https://blog.youkuaiyun.com/SHU15121856/article/details/81122006