关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、3102411850 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 22073|回复: 10

[Minidao] 关于minidao1.6.2最新版本与spring boot整合bug反馈

[复制链接]
发表于 2018-4-11 20:38:38 | 显示全部楼层 |阅读模式
本帖最后由 veteran123 于 2018-4-13 00:48 编辑

minidao 在上一个项目中使用起来非常得心应手。
这次使用了minidao最新版本1.6.2,在整合spring boot 时发现一个问题,就是根本无法读到sql文件,@Sql注解可以正常使用。
下面是maven配置
  1. <dependency>
  2.             <groupId>org.freemarker</groupId>
  3.             <artifactId>freemarker</artifactId>
  4.             <version>2.3.28</version>
  5.         </dependency>
  6.         <dependency>
  7.             <groupId>org.jeecgframework</groupId>
  8.             <artifactId>freemarker-null</artifactId>
  9.             <version>2.3.19</version>
  10.         </dependency>
  11.         <dependency>
  12.             <groupId>org.jeecgframework</groupId>
  13.             <artifactId>minidao-pe</artifactId>
  14.             <version>1.6.2</version>
  15.         </dependency>
复制代码
spring boot 的配置代码
  1. @Bean(name = "miniDaoHandler")
  2.     public MiniDaoBeanScannerConfigurer getMiniDaoBeanScannerConfigurer(){
  3.         MiniDaoBeanScannerConfigurer miniDaoBeanScannerConfigurer = new MiniDaoBeanScannerConfigurer();
  4.         miniDaoBeanScannerConfigurer.setKeyType("lower");
  5.         miniDaoBeanScannerConfigurer.setFormatSql(true);
  6.         miniDaoBeanScannerConfigurer.setShowSql(true);
  7.         miniDaoBeanScannerConfigurer.setDbType("mysql");
  8.         miniDaoBeanScannerConfigurer.setBasePackage("com.movitech.cyperion");
  9.         miniDaoBeanScannerConfigurer.setEmptyInterceptor(new MinidaoInterceptor());
  10.         return miniDaoBeanScannerConfigurer;
  11.     }
复制代码
直接写sql语句在@Sql注解里面没有问题
  1. @MiniDao
  2. public interface DimensionDao {

  3.     @Arguments({"name"})
  4.     @Sql("select * from mc_dimension\n" +
  5.             "<#if name ?exists  && name  ?length gt 0 >\n" +
  6.             "\twhere mc_dimension.name = :name\n" +
  7.             "</#if>")
  8.     @ResultType(Dimension.class)
  9.      List<Dimension> getAllDimension( String name);
  10. }
复制代码
如果把sql内容移到sql文件中,就会读不到sql模板错误

sql语句移到sql文件

sql语句移到sql文件


错误信息:

错误日志

错误日志



解决方案在pom文件中加
  1. <resources>
  2.             <resource>
  3.                 <directory>src/main/java</directory>
  4.                 <includes>
  5.                     <include>**/*.sql</include>
  6.                 </includes>
  7.             </resource>
  8.         </resources>
复制代码
 楼主| 发表于 2018-4-11 20:52:18 | 显示全部楼层
各位大神可以自己整一个看看呢
 楼主| 发表于 2018-4-11 21:25:22 | 显示全部楼层
我参考了下minidao常见错误。把1.6.2升级到1.6.3了。还是不行。

http://www.jeecg.org/forum.php?m ... &extra=page%3D1
这个帖子说

115. minidao 提示sql文件不存在,实际sql存在。
     问题原因: 此为minidao提示不准确问题,真正问题是sql模板freemarker语法错误。
     解决方案:可以引用minidao最新版1.6.3


3.png
最简单的sql语句了,应该不是语法错误引起了吧。


 楼主| 发表于 2018-4-11 21:36:25 | 显示全部楼层
@EnableAutoConfiguration(exclude = { FreeMarkerAutoConfiguration.class })
@ImportResource(locations={"classpath:spring-minidao.xml"})
 楼主| 发表于 2018-4-11 21:36:50 | 显示全部楼层

@EnableAutoConfiguration(exclude = { FreeMarkerAutoConfiguration.class })
@ImportResource(locations={"classpath:spring-minidao.xml"})
这两个我也加了,还是没用
发表于 2018-4-12 09:25:36 | 显示全部楼层
你看看项目编译 sql文件打进去了吗
 楼主| 发表于 2018-4-12 13:24:30 | 显示全部楼层
admin 发表于 2018-4-12 09:25
你看看项目编译 sql文件打进去了吗

我是run main方法啊,不是打包
发表于 2018-4-12 14:05:06 | 显示全部楼层
无论你那种方式,你需要确认*.sql文件在不在class里面
发表于 2018-4-12 14:08:11 | 显示全部楼层
 楼主| 发表于 2018-4-13 00:47:32 | 显示全部楼层
admin 发表于 2018-4-12 14:05
无论你那种方式,你需要确认*.sql文件在不在class里面

提醒我了。找了下确实*.sql文件不在classpath里面。pom文件中要加
  1. <resources>
  2.             <resource>
  3.                 <directory>src/main/java</directory>
  4.                 <includes>
  5.                     <include>**/*.sql</include>
  6.                 </includes>
  7.             </resource>
  8.         </resources>
复制代码
就可以解决了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表