Функция удаления ormlite dao без параметров - PullRequest
0 голосов
/ 18 июня 2019

Попытка удалить все записи из таблицы в уже построенном приложении. У меня есть ormlite dao, и функция кажется очень простой

allUsers есть коллекция объектов для удаления, но я получаю исключение: -

SQLException "java.sql.SQLException: Невозможно запустить удаление коллекции stmt: DELETE FROM user WHERE PIN IN?,?,?,?,?,)

Я попытался создать список идентификаторов и использовать другую опцию "deleteById", та же ошибка

Collection<UserModel> allUsers = helper.getUserDao().queryForAll(); helper.getUserDao().delete(allUsers);

Мне просто нужно уничтожить стол.

Ответы [ 2 ]

1 голос
/ 18 июня 2019

попробуйте

helper.getUserDao().deleteBuilder().where().eq($yourKey, $yourValue).delete()
0 голосов
/ 19 июня 2019

Я попытался создать список идентификаторов и использовать другую опцию "deleteById", та же ошибка

Collection<UserModel> allUsers = helper.getUserDao().queryForAll();
helper.getUserDao().delete(allUsers);

Я не уверен, почему это не сработало.Если вы показываете больше исключений, может быть Caused by разделов исключения, которые предоставили более подробную информацию.Возможно, у UserModel нет поля идентификатора?

Мне просто нужно стереть таблицу.

Есть несколько способовсделать это.Наиболее эффективным является использование TableUtils.clearTable(...):

TableUtils.clearTable(header.getUserDao().getConnectionSource(), UserModel.class);

Удаление всех элементов также можно выполнить с помощью DeleteBuilder:

helper.getUserDao().deleteBuilder().delete();
...