ORMLite搜索具有最常见列的行

时间:2015-09-16 09:41:59

标签: android sqlite ormlite

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

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

E.g。我有一个列text,我有3行,其值为text0,4行的值为text1,5行的值为text2。我需要获取其中一行text2列为text的行。

我可以使用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的方法是否可能。

1 个答案:

答案 0 :(得分:0)

  

我可以使用ORMLite的查询构建器执行此操作,还是应该运行原始查询?

任何非实体的结果都需要通过ORMLite的myModel.attachTo(app.datasources.mysqlDB, function (err){ console.log(err); }); 方法完成。如果您可以使用SQL,那么您可以通过这些方法来完成。

请参阅:http://ormlite.com/docs/raw-queries

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