ORMLite选择不同的字段

Ben*_*nny 5 sqlite android ormlite

我有一个SQLite表(在Android上)有很多字段,但某些字段是重复/非规范化的.我想选择一组不同的数据并将它们用作实际对象.

书桌

title            summary        author
Little Johnny    A funny kid    Johnny Himself
Big Johnny       A funny adult  Johnny Himself
Run Code Online (Sandbox Code Playgroud)

我想从这个列表中提取一位作者("Johnny Himself")并希望我能用ORMLite而不是用Java手动完成.

Gra*_*ray 21

我想选择一组不同的数据并将它们用作实际对象.

我不是100%确定我理解你的查询,但是ORMLite支持一个distinct()方法QueryBuilder可以做你想要的.所以你的代码看起来像:

List<Book> results = booksDao.queryBuilder()
    .distinct().selectColumns("author").query();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,生成的Book对象只会author设置字段而不是id字段或其他任何内容.如果您只想要作者姓名而不是对象,那么您可以这样做:

GenericRawResults<String[]> rawResults =
    booksDao.queryRaw("SELECT DISTINCT author FROM books");
for (String[] resultColumns : rawResults) {
    String author = resultColumns[0];
    ...
}
Run Code Online (Sandbox Code Playgroud)