小编Le *_*ong的帖子

如何在Android Room SQL中使用对象属性?

在 Room 中,我们可以使用基本数据类型从 DAO 进行查询,如下所示

@Query("SELECT * FROM Table WHERE name=:name)
fun fetchAll(name: String)
Run Code Online (Sandbox Code Playgroud)

是否可以像下面这样传递和对象并使用其属性

@Query("SELECT * FROM Table WHERE name=:object.name)
fun fetchAll(object: ClassA)
Run Code Online (Sandbox Code Playgroud)

我找不到任何地方说明如何做到这一点,所以我不确定是否可能以及如何做到这一点。当我在Android Studio中尝试时,它显示错误

android android-room

8
推荐指数
1
解决办法
881
查看次数

具有多个嵌入结构的 Go MarshalJSON 行为

我正在测试带有嵌入式结构的 go json 封送处理。但是,我发现当我嵌入 time.Time 时,为什么它总是覆盖其他嵌入的结构,即使它们也提供自己的自定义封送处理?下面的代码总是打印出来"0001-01-01T00:00:00Z"

\n
package main\n\nimport (\n    "encoding/json"\n    "fmt"\n    "time"\n)\n\ntype A struct {\n}\n\nfunc (a A) Print() {\n    fmt.Println("A")\n}\n\ntype B struct {\n    B int\n}\n\nfunc (a A) MarshalJSON() ([]byte, error) {\n    return []byte(`"a"`), nil\n}\n\nfunc (b B) MarshalJSON() ([]byte, error) {\n    return []byte(`"b"`), nil\n}\n\nfunc (a B) Print() {\n    fmt.Println("A")\n}\n\ntype C struct {\n    A\n    B\n    time.Time\n    C int `json:"C"`\n}\n\nfunc main() {\n    fmt.Println("Hello, \xe4\xb8\x96\xe7\x95\x8c")\n    c := C{}\n    decode, err := json.Marshal(c)\n    if err != nil {\n        fmt.Println(err)\n    }\n    fmt.Println(string(decode))\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

go encoding-json-go

2
推荐指数
1
解决办法
907
查看次数

标签 统计

android ×1

android-room ×1

encoding-json-go ×1

go ×1