android - ORMLite 搜索具有最常见列的行

标签 android sqlite ormlite

我正在使用 ORMLite 处理本地数据库,但遇到一个自定义查询问题。

我需要得到一行,其中某列的值在表中最常见。

例如我有一列 text 并且我有 3 行的值为 text0,4 行的值为 text1 和 5 行的值为 text2。我需要获取 text 列中具有值 text2 的行之一。

我可以使用 ORMLite 的查询生成器来做这件事还是我应该运行一个原始查询?

这是原始的 sql 查询,它工作正常并返回字符串数组。

        Dao<Case, Long> caseDao = getHelper().getCaseDao();
        GenericRawResults<String[]> cases = caseDao.queryRaw("SELECT * ," +
                " COUNT('name') AS 'name_occurrence'" +
                " FROM 'MEDICAL_CASE'" +
                " GROUP BY 'name'" +
                " ORDER BY 'name_occurrence' DESC" +
                " LIMIT 1", new String[]{});

获取字符串后,我必须创建我的模型实例、设置值并使用该对象执行 jon。

但这有点难看,这就是为什么我要问是否可以使用 ormlite 的方法。

最佳答案

Can I do this with ORMLite's query builder or I should run a raw query?

任何不是实体的结果都需要通过 ORMLite 的 dao.queryRaw(...) 方法来完成。如果您可以使用 SQL 来完成,那么您也可以通过这些方法来完成。

参见:http://ormlite.com/docs/raw-queries

您不能使用标准实体映射器,因为您正在执行 SELECT *, COUNT('name')。 ORMLite 不知道如何处理 COUNT(...) 字段。

关于android - ORMLite 搜索具有最常见列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32604993/

相关文章:

android - 如何创建单表虽然类包含嵌套类?

android - Glide 无法解析方法 .asGif()

android - 如何在 ImageView 中单击时全屏显示图像?

java - RecyclerView URL 重定向到 WebView (WebScraping)

android - 在 ContentProvider 中关闭数据库

android - 带报价的 ORMLite 查询,Android

java - ORMLite 中的多个组合 OR 条件

android - meteor 应用程序 : Push notifications stopped working for Android 8+ when updating TargetSDK to 26

sql - 如何获得“不存在”查询的最大值

SQLite 插入或替换位置