JFINAL 解析SQL的问题

com.jfinal.plugin.activerecord.dialect.Dialect#forPaginateTotalRow

image.png

如果SQL语句在select与form中间用到了#para指令,会报错 

Parameter index out of range (2 > number of parameters, which is 1).

比如 

SELECT
	(
		SELECT
			count(*)
		FROM
			role
		WHERE
			uid = #para(id)
  ) as number
from user as a where id = #para(id)

请问 这种怎么解决

评论区

JFinal

2023-09-20 18:04

代码不完整,不知道你是如何调用的

鱼跃人

2023-10-08 14:55

@JFinal 调用 Page paginate = Db.paginate(request.getPage(), request.getLimit(), sqlPara); 会报错 java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1).

鱼跃人

2023-10-08 15:03

@JFinal 框架生成count(*)SQL的时候,会忽略了from前面的#para,但是传递的动态参数是两个,实际这个SQL也是需要两个动态参数的,但是count(*)SQL只需要where后面的那个,就会报错这个

鱼跃人

2023-10-08 15:05

@JFinal 分页查询

星矢

2023-10-09 16:28

貌似外面再包一层就行了

热门反馈

扫码入社