我使用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的方法是否可能。
答案 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')
字段。