RestKit을 통해 POST 요청이 웹 서비스로 전송되면 데이터베이스가 NULL 값을 삽입하려고 시도합니다.

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

문제

내 웹 서비스에 POST 요청을 하면 다음 오류가 생성됩니다.

TinyTds::오류:값 null을 'bankcd'열에 삽입 할 수 없습니다. Table 'SlotsmasterData.master.bank';열은 널을 허용하지 않습니다.

서버 콘솔에는 다음이 표시됩니다.

enter image description here

위에서 보면 내 Bank 개체의 모든 속성에 대한 값이 존재하지만 'SELECT CAST(SCOPE IDENTITY() ...'가 수행됩니다.

내 앱 코드는 다음과 같습니다.

    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];

NULL 값을 삽입하려고 시도하는 이유는 무엇입니까?이 문제를 어떻게 해결합니까?당신의 도움을 주셔서 감사합니다!

도움이 되었습니까?

해결책

bankRequestMapping 의 역 매핑으로 선언되어야 합니다. bankMapping.현재로서는 매개변수 이름이 잘못된 것으로 보입니다.Charles를 사용하여 실제로 보내는 내용과 예상한 내용과 일치하는지 확인해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top