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(...)
字段。
我正在使用 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(...)
字段。