Android ORMlite SelectArg

Я прочитал несколько вещей об использовании SelectArg в stackoverflow и документации 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 пример: Проблемы с выполнением запроса Android: SELECT * FROM occupations WHERE job = 'Athletes' Business Manager '


person Phil    schedule 08.10.2014    source источник


Ответы (1)


Некоторое время я боролся с подобной проблемой и, наконец, нашел правильную реализацию:

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());
person damax    schedule 17.03.2015