Banco de dados tenta inserir valores NULOS quando uma solicitação POST é enviada para o webservice através de RestKit
-
20-12-2019 - |
Pergunta
Quando eu fizer uma solicitação POST para o meu webservice, o seguinte erro é gerado:
TinyTds::Erro:Não é possível inserir o valor NULL na coluna 'BankCD', a tabela 'SlotsMasterData.O mestre.O banco";a coluna não permite valores nulos.
O servidor de console exibe a seguinte:
A partir do acima você pode ver que existem valores para todos os atributos do meu Banco de objeto, mas, de repente, a referência para cada um é NULO quando 'SELECT CAST(ÂMBITO de IDENTIDADE() ..."é executada.
Este é o meu código do aplicativo:
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];
Qual é feita uma tentativa para inserir valores NULOS?Como faço para corrigir isso?Obrigado por sua ajuda!
Solução
bankRequestMapping
deve ser declarado como o inverso do mapeamento do bankMapping
.Como você tem no momento, os nomes de parâmetro parece ser o errado caminho de volta.Você deve usar Charles para verificar o que são, na verdade, de envio e de que ele corresponde ao que você espera.