在 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中尝试时,它显示错误
我正在测试带有嵌入式结构的 go json 封送处理。但是,我发现当我嵌入 time.Time 时,为什么它总是覆盖其他嵌入的结构,即使它们也提供自己的自定义封送处理?下面的代码总是打印出来"0001-01-01T00:00:00Z"
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\nRun Code Online (Sandbox Code Playgroud)\n