nutz源码如下
//=============================================================
//===========update语句使用特定的值,例如+1 -1 toDate()等========
//=============================================================
/**
* 添加一个特殊节点, 如果value非空,则有3个情况:<p>
* <li>+1 效果如age=age+1</li>
* <li>-1 效果如count=count-1</li>
* <li>支持的运算符有 + - *\/ % & ^ |
* <li>其他值, 则对value.toString(),效果如 time=todate("XXXXX")</li>
*
* @since 1.b.44
*/
public abstract Chain addSpecial(String name, Object value);
/**
* @see org.nutz.dao.Chain#addSpecial(String, Object)
* @since 1.b.44
*/
public static Chain makeSpecial(String name, Object value) {
DefaultChain chain = new DefaultChain(name, value);
chain.head.special = true;
return chain;
}
现象如下
比如字段count库里存放是2, 希望执行完是1, 但是下面的语句并不生效.
dao.update(A.class, Chain.makeSpecial("count", -1), Cnd.where("id", "=", 1));
改成如下语句可以生效.
dao.update(A.class, Chain.makeSpecial("count", "-1"), Cnd.where("id", "=", 1));
疑问如下
nutz源码中的"+1 效果如age=age+1"这个描述中的前面的"+1"指的就是要转成字符串作为参数value的值传入吗?