NutzCN Logo
问答 对于复杂sql cri 抛出反射异常
发布于 3220天前 作者 sunboyku 1807 次浏览 复制 上一个帖子 下一个帖子
标签:

对于复杂sql cri 抛出反射异常,是无法嵌套使用的原因嘛?

			//sql+=" and (status!='"+statusId+"' or (status='"+statusId+"' and location_flag in ('1','2') )) ";
			cri.where().and(cri.where().andNotEquals("status", statusId).and("status", "!=", statusId)
					.or(cri.where().and("status", "=", statusId).andIn("locationFlag", 1,2)));
10 回复

这个是 代码,上面那个贴错了

			//sql+=" and (status!='"+statusId+"' or (status='"+statusId+"' and location_flag in ('1','2') )) ";
			cri.where().and(cri.where().andNotEquals("status", statusId)
					.or(cri.where().and("status", "=", statusId).andIn("locationFlag", 1,2)));

@wendal

	at org.nutz.dao.util.cri.SqlExpressionGroup.setPojo(SqlExpressionGroup.java:297)

@wendal

java.lang.StackOverflowError
	at java.util.ArrayList$Itr.<init>(Unknown Source)
	at java.util.ArrayList$Itr.<init>(Unknown Source)
	at java.util.ArrayList.iterator(Unknown Source)
	at org.nutz.dao.util.cri.SqlExpressionGroup.setPojo(SqlExpressionGroup.java:296)
	at org.nutz.dao.util.cri.SqlExpressionGroup.setPojo(SqlExpressionGroup.java:297)
	at org.nutz.dao.util.cri.SqlExpressionGroup.setPojo(SqlExpressionGroup.java:297)
	at org.nutz.dao.util.cri.SqlExpressionGroup.setPojo(SqlExpressionGroup.java:297)
	at org.nutz.dao.util.cri.SqlExpressionGroup.setPojo(SqlExpressionGroup.java:297)
	at org.nutz.dao.util.cri.SqlExpressionGroup.setPojo(SqlExpressionGroup.java:297)
	at org.nutz.dao.util.cri.SqlExpressionGroup.setPojo(SqlExpressionGroup.java:297)
	at org.nutz.dao.util.cri.SqlExpressionGroup.setPojo(SqlExpressionGroup.java:297)
	at org.nutz.dao.util.cri.SqlExpressionGroup.setPojo(SqlExpressionGroup.java:297)

我晕,这样当然死啦,cri不能是同一个

@wendal
没有明白,所谓的CRI 不能是同一个是什么意思? 那我要实现这个sql的效果

//sql+=" and (status!='"+statusId+"' or (status='"+statusId+"' and location_flag in ('1','2') )) ";

我 cri 这么拼装不对吗?

cri.where().and(cri.where().andNotEquals("status", statusId)
					.or(cri.where().and("status", "=", statusId).andIn("locationFlag", 1,2)));

@sunboyku 不能是同一个cri

@wendal

。。。。 哦哦明白了。。。不过既然是容器,是否可以优化一下,要不需要实例化好几个对象啊

不能啊, cri.where()返回的是同一个list

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