代码:
//更新商品 public void updateGood(){ // Boolean flag=new Goods().set("Name", "维C").set("Brief", "维C泡腾片").set("Id","1").update(); Goods good=new Goods().set("Name", "维C").set("Brief", "维C泡腾片"); good.set("Id", "1"); Boolean flag=good.update(); if(flag){ renderText("Update Success:"+new Goods().findById("1").getName()); }else{ renderText("Update Fail!"); } }
之后时报错:
You can't update model without Primary Key, id can not be null.
表是Goods表,主键为Id。
是不是一定要为 id 不能是Id ?
另外,还想请教下,
public void addGood() { Goods good = new Goods(); // good.setName("维生素E"); // good.setBrief("维生素E胶囊"); // good.setSpec("瓶"); good.set("Name", "维生素E"); good.set("Brief", "维生素E胶囊"); good.set("Spec", "瓶"); boolean flag = good.save(); if (flag) { renderText("Success!"); } else { renderText("Fail!"); } }
这两种set(一个是键值对,一个是set属性),有什么区别呢?
我执行sava的时候,使用setName这种,会操作数据库,但是数据都为空,改成键值对这种的就可以?
求指教,谢谢。
activeRecordPlugin.addMapping(tableName, "ID", modelClass);
如上所示,中间的参数 "ID" 就是大写的 id,具体到你的项目,是一个大写一个小写,改成这样:
activeRecordPlugin.addMapping(tableName, "Id", modelClass);
这种事情早在两年前就不需要手动做了,jfinal 提供了生成器,映射也是自动生成的,会自动解决大小写问题,在首页下载 jfinal demo,里面有生成器的使用例子,直接拿去改下几个参数即可使用