Skip to content
koji ishii edited this page Dec 27, 2013 · 2 revisions

Reference

Transaction Layer

  • Implements TransactionService
    @interface KOOrderService : KOTransactionService

  • Search Data
    Calls (void)inDatabase:(void (^)(FMDatabase *db))block

- (NSArray*) findAll{
    __block NSArray* array;
    [_queue inDatabase:^(FMDatabase *db) {
        KOOrderStore *store = [[KOOrderStore alloc]initWithFMDatabase:db];
        array = [store findAll];
    }];
    return array;
}
  • Uses Transaction
    Calls - (void)inTransaction:(void (^)(FMDatabase *db, BOOL *rollback)) block and Sets *rollback = YES; when Exception occure
- (void) removeDetail:(KOOrderDetail*)form;{
    [_queue inTransaction:^(FMDatabase *db, BOOL *rollback) {
        @try {
            KOOrderDetailStore *store = [[KOOrderDetailStore alloc]initWithFMDatabase:db];
            [store deleteByPk:form];
        }
        @catch (NSException *exception) {
            *rollback = YES;
            NSLog(@"%@",exception);            
        }
    }];
}

Persistence Layer

  • Uses non-generic method
-(KOOrderDetail*) findByName:(NSString*) name {
    NSString *condtion = [NSString stringWithFormat:@"where %@ = ?",  NAME];
    return [super _findByConditionSql:condtion withArgumentsInArray:@[name]];
}

or

-(KOOrderDetail*) findByName:(NSString*) name {
    NSString *condtion = [NSString stringWithFormat:@"where %@ = :hoge",  NAME];
    return [super _findByConditionSql:condtion withParameterDictionary:@{@"hoge": name}];
}
Clone this wiki locally