最近在项目里使用了sugar这个框架,使用很简单,但是个人的失误和不注意,导致在一个问题上花费太多的时间,特此记录。
Github地址(https://github.com/satyan/sugar);官方文档地址(http://satyan.github.io/sugar/)
其中sugar中update()这个方法与我所期望的不一样,使用前要确定表的唯一值,这点不说了。
之前我给一张表(比如表C)指定了两个唯一值,从数据库得到一条记录c;更新一个属性得到c1;执行c1.update(),目的是更新记录c为记录c1,但是执行后后发现整个表都被更新了,整个表只剩c1记录。
查看了官网,发现正确的更新方法如下:
Update Entity:
Book book = Book.findById(Book.class, 1);
book.title = "updated title here"; // modify the values
book.edition = "3rd edition";
book.save(); // updates the previous entry with new values.
本人也更新过其他只有一个唯一值的表记录,结果如我所愿的更新了。
原因我猜测如下,执行没有id值的实例的update()方法时,表会新增一条记录,如果实例有id值,整个表都会更新。