Closed HuaZao closed 8 years ago
/**
保存单条,不关联保存 */
JRSql *sql = [JRSqlGenerator sql4Insert:one toDB:self]; [one setID:[JRUtils uuid]]; [sql.args insertObject:one.ID atIndex:0]; BOOL ret = [self jr_executeUpdate:sql];
if (ret) { // 保存完,执行block [one jr_executeFinishBlocks]; } return ret; }
上面的代码有问题....无论如何都是保存了[JRUtils uuid]这个Value 还有[[one class] jr_customPrimarykey]调用了设置主键而不是设置主键的默认值......应该是[one jr_customPrimarykeyValue]吧...
最后改成这样就没问题了 /**
if (ret) { // 保存完,执行block [one jr_executeFinishBlocks]; } return ret; } else { // 默认主键 NSAssert(one.ID == nil, @"The obj:%@ to be saved should not hold a ID", one); JRSql *sql = [JRSqlGenerator sql4Insert:one toDB:self]; [one setID:[JRUtils uuid]]; [sql.args insertObject:one.ID atIndex:0]; BOOL ret = [self jr_executeUpdate:sql];
if (ret) { // 保存完,执行block [one jr_executeFinishBlocks]; } return ret; } }
不知道理解有没有问题....还是我的写法有问题
能否给出你实际出现bug的代码呢
pragma mark - save one
/**
保存单条,不关联保存 */
JRSql *sql = [JRSqlGenerator sql4Insert:one toDB:self]; [one setID:[JRUtils uuid]]; [sql.args insertObject:one.ID atIndex:0]; BOOL ret = [self jr_executeUpdate:sql];
if (ret) { // 保存完,执行block [one jr_executeFinishBlocks]; } return ret; }
上面的代码有问题....无论如何都是保存了[JRUtils uuid]这个Value 还有[[one class] jr_customPrimarykey]调用了设置主键而不是设置主键的默认值......应该是[one jr_customPrimarykeyValue]吧...
最后改成这样就没问题了 /**
保存单条,不关联保存 */
if (ret) { // 保存完,执行block [one jr_executeFinishBlocks]; } return ret; } else { // 默认主键 NSAssert(one.ID == nil, @"The obj:%@ to be saved should not hold a ID", one); JRSql *sql = [JRSqlGenerator sql4Insert:one toDB:self]; [one setID:[JRUtils uuid]]; [sql.args insertObject:one.ID atIndex:0]; BOOL ret = [self jr_executeUpdate:sql];
if (ret) { // 保存完,执行block [one jr_executeFinishBlocks]; } return ret; } }
不知道理解有没有问题....还是我的写法有问题