Android ORMlite SelectArg

时间:2014-10-08 10:40:24

标签: android ormlite

我已经阅读了有关使用Stackoverflow上的SelectArg和ORMLite文档的一些内容,我无法看到我做错了什么。

我在职业表中搜索工作领域="运动员'业务经理"。正如您所看到的,它包含一个单引号,我试图使用SelectArg进行转义。

SelectArg occupationArg = new SelectArg(txtOccupation.getText().toString().trim());

Occupations occupation = CommonUtilities.getHelper(getApplicationContext()).getOccupationsDao().queryBuilder().where().eq(
                 Occupations.JOB_FIELD, occupationArg).queryForFirst();

上面的代码给出了以下错误:

无法加载驱动程序详细信息:SQL ex:执行Android查询时出现问题:SELECT * FROM occupations WHERE job ='运动员'业务经理'

1 个答案:

答案 0 :(得分:0)

我一直在努力解决类似的问题并最终找到了正确的实施方式:

Dao<Book, Integer> bookDao = getDatabaseHelper(ctx).getBookDao();
UpdateBuilder<Book, Integer> builder = bookDao.updateBuilder();
builder.updateColumnValue("title", book.getTitle());
SelectArg titleArg = new SelectArg();
titleArg.setValue(book.getTitle());
builder.updateColumnValue("title", titleArg);
...
PreparedUpdate<Book> prepare = (PreparedUpdate<Book>) builder.where().idEq(book.getIdField()).prepare();
bookDao.update(prepare);

因此,在您的情况下,通过setValue方法传递值,而不是构造函数:

SelectArg occupationArg = new SelectArg(txtOccupation.getText().toString().trim());