Отношения всегда равны нулю при выполнении динамоатрибутов. UnmarshalMap - PullRequest
1 голос
/ 18 февраля 2020

У меня есть две структуры. Образец и тест. «Образец» имеет отношение типа «Тест». Когда я пытаюсь сделать «dynamicoattribute.UnmarshalMap», связь всегда равна нулю. Не могли бы вы посоветовать, как заполнить отношения (в данном случае «Тест»)?

package main

import (
    "fmt"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/service/dynamodb"
    "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute"
)

type Sample struct {
    SampleId string `jsonapi:"attr,sampleId,omitempty" dynamodbav:"sample_id"`
    Test     *Test  `jsonapi:"relation,test"`
}

type Test struct {
    TestId string `jsonapi:"attr,testId,omitempty" dynamodbav:"test_id"`
}

func main() {
    var m map[string]*dynamodb.AttributeValue
    m = make(map[string]*dynamodb.AttributeValue)

    m["sample_id"] = &dynamodb.AttributeValue{
        S: aws.String("sample1"),
    }

    m["test_id"] = &dynamodb.AttributeValue{
        S: aws.String("test"),
    }

    sam := Sample{}

    err := dynamodbattribute.UnmarshalMap(m, &sam)
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(sam)
}

enter image description here

1 Ответ

0 голосов
/ 19 февраля 2020
package main

import (
    "fmt"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/service/dynamodb"
    "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute"
)

type Sample struct {
    SampleId string `jsonapi:"attr,sampleId,omitempty" dynamodbav:"sample_id"`
    Test     *Test  `jsonapi:"relation,test"`
}

type Test struct {
    TestId string `jsonapi:"primary,testId" dynamodbav:"test_id"`
}


func main() {
    var m map[string]*dynamodb.AttributeValue
    m = make(map[string]*dynamodb.AttributeValue)   

    m["sample_id"] = &dynamodb.AttributeValue{
        S: aws.String("sample1"),
    }

    var mTest map[string]*dynamodb.AttributeValue
    mTest = make(map[string]*dynamodb.AttributeValue)

    mTest["test_id"] = &dynamodb.AttributeValue{
        S: aws.String("test1"),
    }

    m["test"] = &dynamodb.AttributeValue{
        M: mTest,
    }

    sam := Sample{}

    err := dynamodbattribute.UnmarshalMap(m, &sam)
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(sam)
}
...