ORMLite 搜索具有最常见列的行

ORMLite search for rows with most common column

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

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

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

我可以使用 ORMLite 的查询构建器来完成这项工作,还是我应该 运行 一个原始查询?

这是原始的 sql 查询,工作正常,returns 字符串数组。

        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(...) 字段。