SQLDelight - 如何指定查询的返回类型?

问题描述 投票:0回答:1

我已经使用 SQLDelight 几天了,在最初的喜悦之后,我偶然发现了一个谜团 - 如何定义查询返回类型?

例如,如果我有一张桌子

CREATE TABLE LocationEntity (id INTEGER, name TEXT NOT NULL, description TEXT);

如果我这样做

getAll:
    SELECT * FROM LocationEntity

SqlDelight 将返回 LocationEntity 对象的列表,这很棒。

但是如果我有投影选择,就像这样:

getAll:
    SELECT id, name FROM LocationEntity

SQLDelight 生成一个新类型 GetAll。我怎样才能告诉它使用我的对象 ShortLocation(id: Long, name: String) 来代替?

我在这里缺少什么?

它甚至可以完成吗,或者我被许多生成的类型所困扰(几乎每个查询)?

android kotlin kotlin-multiplatform sqldelight
1个回答
0
投票

实现此目的的一种方法是将

ShortLocation
定义为 SQL 中的
VIEW

CREATE VIEW ShortLocation AS
SELECT id, name FROM LocationEntity

那么您的查询可以是

getAll:
SELECT * FROM ShortLocation
© www.soinside.com 2019 - 2024. All rights reserved.