当前位置: 首页 > 面试题库 >

为什么在Go AppEngine aetest中使用datastore.PropertyList使用datastore.Put获得“无效实体类型”?

李洋
2023-03-14
问题内容

该测试失败并 partnermerge_test.go:22: datastore: invalid entity type

package bigdipper

import (
    "testing"

    "appengine/aetest"
    "appengine/datastore"
)

func TestCreateMigrationProposal(t *testing.T) {
    c, err := aetest.NewContext(nil)
    if err != nil {
            t.Fatal(err)
    }
    defer c.Close()
    if _, err := datastore.Put(
            c,
            datastore.NewKey(c, "ORDER", "order-id-1", 0, nil),
            datastore.PropertyList{}); err != nil {
            t.Fatal(err)
    }
}

问题答案:

datastore.Put函数的文档说:

Put使用键k将实体src保存到数据存储中。src必须是结构指针或实现PropertyLoadSaver;如果是结构指针,则该结构的任何未导出字段都将被跳过。如果k是不完整的密钥,则返回的密钥将是由数据存储区生成的唯一密钥。

尝试将其与PropertyList一起使用时,这有些令人困惑src。PropertyList不实现PropertyLoadSaver,但*
PropertyList实现。在PropertyList之前添加&以获得指向它的指针可修复此测试。

package bigdipper

import (
    "testing"

    "appengine/aetest"
    "appengine/datastore"
)

func TestCreateMigrationProposal(t *testing.T) {
    c, err := aetest.NewContext(nil)
    if err != nil {
            t.Fatal(err)
    }
    defer c.Close()
    if _, err := datastore.Put(
            c,
            datastore.NewKey(c, "ORDER", "order-id-1", 0, nil),
            &datastore.PropertyList{}); err != nil {
            t.Fatal(err)
    }
}


 类似资料:
  • 我尝试使用JasperSoft Studio在jasper报告中使用List,但在定义数据集时,即使将转换为,JRDataSource表达式也显示为无效(请参见下图)。 表示 错误 当前表达式无效。请验证! 这个错误看起来很奇怪,我不明白这里出了什么问题。

  • 我写了一段代码,对给定的输入进行排序,但在返回排序后的输入后,它将始终返回相同的输出。我正在使用创建控制台应用程序。Visual Studio中的NET 5.0(当前版本)。 当我输入“Car-Apple-Banana”时,它会按单词排序。排序() 之后,我打印出原始输入,但它似乎也被排序。我不知道为什么,因为我从不分类。 当输入为:“汽车苹果香蕉” 我现在得到的输出是: 苹果香蕉车 苹果香蕉车

  • 我的问题可能看起来很傻。我是JPA的新手,试图理解它的基本概念。我发现有一种@multi-to-one实体关系可以在那里使用。我的问题是,为什么有人想在拥有“一对多”关系的同时使用它?我的意思是,拥有后一个就足够了解关系并发送查询了,对吗?如果没有,请解释。也许我对这两种关系的看法是完全错误的。请提供一个场景作为示例,以便我更好地理解。谢谢

  • 问题内容: 这两个类别有何不同? 有什么明显的区别吗? 问题答案: 是一个 类变量 。 的是一个 实例变量 。 即的被实例之间共享。 用可以像列表这样修改的东西更容易证明区别: 输出量

  • 问题内容: 我一直在研究,发现从2.1开始就可以使用实体图。 但是我还不了解实体图的优点。 我知道使用实体图的优点之一是我们只能在整个实体中指定要获取的数据,但是如果我们要整个实体,还有其他理由使用实体图吗?还是仅在要检索部分数据时才应使用实体图? 当我们使用实体图时,它还有其他目的或优点,我想知道。 问题答案: 在Jpa中,休眠与关联关系一直是性能的问题。 一次又一次地在事务中延迟加载关联会导致

  • 问题内容: 当我编译这段代码时,编译器告诉我我 不能使用str(s)的地址 。 所以我的问题是 类型转换 是否会寻找新地址来定位当前的new ,还是我没有想到的其他东西? 问题答案: Go编程语言规范 表达方式 表达式通过将运算符和函数应用于操作数来指定值的计算。 转换次数 转换是形式为T(x)的表达式,其中T是类型,x是可以转换为类型T的表达式。 地址运算符 对于类型T的操作数x,地址操作&x生