NutzCN Logo
问答 nutz使用的sqls文件部署到linux服务器上经常会有找不到sql语句的错误,例如fail to find SQL 'address.mobileQuery'!
发布于 2849天前 作者 qq_4f7a40b4 1859 次浏览 复制 上一个帖子 下一个帖子
标签:

nutz使用的sqls文件部署到linux服务器上经常会有找不到sql语句的错误,例如org.nutz.dao.SqlNotFoundException:fail to find SQL 'address.mobileQ

9 回复

nutz什么版本的? 如果是比较老的版本,先在MainSetup的init方法内调用一次dao.sqlManager().count();

恩,老bug,提前调用一次count就能解决

换nutz版本能否解决,公司框架封装,不怎么好改底层。。。

换版本可以解决,

只要在web请求来到之前调用一次sqlManager.count()就能解决了,放在任意Module的init方法,然后@IocBean引用之

@IocBy(type=ComboIocProvider.class,args={"*org.nutz.ioc.loader.json.JsonLoader","ioc/",
	  "*org.nutz.ioc.loader.annotation.AnnotationIocLoader","com.ttsx.prosuper"})
@Encoding(input="utf8",output="utf8")
@Modules(scanPackage=true)
@Filters(@By(type = LoginFilter.class))
@Localization("msg")
@Ok("ioc:json")
@Fail("json")
@IocBean
public class MainModule {
	//解决老版本下linux系统无法读取sqls文件的问题
	static void init(){
		FileSqlManager sqlManager=new FileSqlManager();
		sqlManager.count();
	}
}

是不是上面的代码即可

Setup实现类的init方法加上


public void init(NutConfig nc) { nc.getIoc().get(SqlManager.class).count(); }

核心就是让sqlManager初始化一次,ioc里面的sqlManager实例

添加回复
请先登陆
回到顶部