作为面向服务的一款开发工具,EOS具有敏捷开发的优势。EOS中的命名SQL的底层技术是ibatis,在使用时,我们只需要在创建完命名SQL后保存,不需要像Mybatis一样去配置mapper,直接可以在代码中调用。也就是说,EOS会自动管理命名SQL。
但是,有时候在启动服务器后更改命名SQL(新增或者更改SQL),保存,会导致原来ok的SQL被提示不存在(没声明)。
1. 问题日志:
报错大致意思:在EOS中找不到叫做"XXX"的SQL语句的声明(statement)。
2. 原因分析:
(1) EOS的命名SQL中确实没有声明该SQL语句
(2) EOS热更新失败(本地服务器启动后去更改命名SQL,然后保存,EOS更新失败),致使原来ok的SQL现在去调用报如上错误
(3) EOS编译出错
3. 解决方案(针对SQL语句存在)
(1) 找到该命名SQL所在的包,然后点击包名,右击选中弹出框中的"清除后再部署";
(2) 第一步没见效,点击“项目”->“清理”,然后新建一个命名SQL,将原来的SQL 复制过来(推荐);或者,更新classpath
(3) 第二步没见效,删除当前EOS构件包,关闭EOS。将工作空间所在文件夹里面的文件清空,打开EOS,然后重新导入代码(会重新编译)
(4) 如果以上操作还没用,就猜测是否EOS出了问题。测试一下,试试其他的命名SQL是否有效,如果全部没效(原来ok的调用报错),就考虑重装吧(不推荐)