Il database tenta di inserire valori nullo quando viene inviata una richiesta Post a WebService tramite Restkit

StackOverflow https://stackoverflow.com//questions/20005388

Domanda

Quando faccio una richiesta di post al mio servizio Web, viene generato il seguente errore:

.

TinyTTS :: Errore: impossibile inserire il valore null nella colonna "Bankcd", tabella 'slotsmasterdata.master.bank';La colonna non consente nulls.

La console del server visualizza quanto segue:

Inserisci Descrizione dell'immagine qui

Da quanto sopra puoi vedere che esistono valori per tutti gli attributi del mio oggetto bancario, ma improvvisamente il riferimento a ciascuno è null quando viene eseguito il cast (identità dell'ambito () ... ".

Questo è il mio codice App:

    RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:basePathToWebService]];

    RKObjectMapping *bankMapping = [RKObjectMapping mappingForClass:[Banks class]];

    NSDictionary *attributeMappingDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                                @"BankID", @"bankID",
                                                @"BankCD", @"bankCD",
                                                @"BankName", @"bankName",
                                                @"InsertSourceKey", @"insertSourceKey",
                                                @"UpdateSourceKey", @"updateSourceKey",
                                                @"Active", @"active",
                                                nil];

    [bankMapping addAttributeMappingsFromDictionary:attributeMappingDictionary];

    RKObjectMapping *bankRequestMapping = [RKObjectMapping requestMapping];
    [bankRequestMapping addAttributeMappingsFromDictionary:attributeMappingDictionary];

    RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:bankMapping method:RKRequestMethodAny pathPattern:@"/banks" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

    RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:bankRequestMapping objectClass:[Banks class] rootKeyPath:nil method:RKRequestMethodAny];

    [objectManager addResponseDescriptor:responseDescriptor];
    [objectManager addRequestDescriptor:requestDescriptor];

    [RKMIMETypeSerialization registerClass:[RKNSJSONSerialization class] forMIMEType:@"text/plain"];

    //Post
    [objectManager postObject:bank path:@"/banks" parameters:nil success:nil failure:nil];
.

Perché un tentativo è fatto per inserire valori nullo?Come posso aggiustare questo?Grazie per il tuo aiuto!

È stato utile?

Soluzione

bankRequestMapping deve essere dichiarato come mappatura inversa del bankMapping.Come lo hai al momento in cui i nomi dei parametri sembrano essere il modo sbagliato in giro.Dovresti usare Charles per verificare ciò che stai effettivamente inviando e che corrisponde a ciò che ti aspetti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top