NutzCN Logo
问答 自定义sql参数为list的小bug
发布于 2535天前 作者 qq_1d84c364 1771 次浏览 复制 上一个帖子 下一个帖子
标签:

写法1:

Sql sql = dao.sqls().create("getRightAreaIdList").setCallback(Sqls.callback.longs());
		sql.params().set("allUserIdList", allUserIdList)
		.set("allGroupIdList", allGroupIdList);
		dao.execute(sql);

写法2:

Sql sql = dao.sqls().create("getRightAreaIdList").setCallback(Sqls.callback.longs());
		sql.params().set("allUserIdList", allUserIdList.toArray(new Long[allUserIdList.size()]))
		.set("allGroupIdList", allGroupIdList.toArray(new Long[allGroupIdList.size()]));
		dao.execute(sql);

写法1在log4j的debug模式中调用出错,info模式中正常,写法2均正常,我觉得这个问题是不是也要报一下?
错误日志如下:

[DEBUG] 09:11:56.278 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - select areaId from tDoorAreaUserRight where userId in(?)
union all
select areaId from tDoorAreaUserGroupRight where groupId in(?)
    |   1 |    2 |
    |-----|------|
    | [0] | [-1] |
  For example:> "select areaId from tDoorAreaUserRight where userId in('[0]')
union all
select areaId from tDoorAreaUserGroupRight where groupId in('[-1]')"
org.nutz.dao.DaoException: java.lang.NullPointerException
	at org.nutz.dao.impl.sql.run.NutDaoRunner._runWithoutTransaction(NutDaoRunner.java:139)
	at org.nutz.dao.impl.sql.run.NutDaoRunner._run(NutDaoRunner.java:92)
	at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:81)
	at org.nutz.dao.impl.DaoSupport.run(DaoSupport.java:240)
	at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:252)
	at org.nutz.dao.impl.DaoSupport.execute(DaoSupport.java:236)
	at org.nutz.dao.impl.NutDao.execute(NutDao.java:1008)
	at com.easysoft.service.DoorService.getRightAreaIdList(DoorService.java:635)
	at com.easysoft.service.DoorService.getAreaDoorSizeMap(DoorService.java:605)
	at com.easysoft.controller.doors.DoorsController.toIndex(DoorsController.java:86)
	at com.easysoft.controller.doors.DoorsController$FM$toIndex$3c405edb92805dfecfe0328c90152ad4.invoke(DoorsController.java)
	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)
	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:30)
	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
	at com.easysoft.MyEncodeProcessor.process(MyEncodeProcessor.java:14)
	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:67)
	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
	at org.nutz.dao.jdbc.Jdbcs.guessEntityFieldColumnType(Jdbcs.java:861)
	at org.nutz.dao.impl.sql.NutStatement.getAdapterBy(NutStatement.java:339)
	at org.nutz.dao.impl.sql.NutSql$SqlParamPItem.joinAdaptor(NutSql.java:316)
	at org.nutz.dao.impl.sql.NutSql.getAdaptors(NutSql.java:106)
	at org.nutz.plugins.sqltpl.NutSqlTpl.getAdaptors(NutSqlTpl.java:23)
	at org.nutz.dao.impl.sql.run.NutDaoExecutor._runSelect(NutDaoExecutor.java:259)
	at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:53)
	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:66)
	at org.nutz.dao.impl.interceptor.DaoLogInterceptor.filter(DaoLogInterceptor.java:22)
	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:64)
	at org.nutz.dao.DaoInterceptorChain.invoke(DaoInterceptorChain.java:139)
	at org.nutz.dao.impl.sql.run.NutDaoRunner.runCallback(NutDaoRunner.java:158)
	at org.nutz.dao.impl.sql.run.NutDaoRunner._runWithoutTransaction(NutDaoRunner.java:125)
	... 45 more
2 回复

当前nutz版本是1.r.63

嗯,需要查一查

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