Подтвердить что ты не робот

Как удалить запись с ORMLITE?

Мне нужно удалить запись из базы данных ORMLite. Я могу удалить запись по идентификатору, используя ниже:

@Override
public void Delete(int id) throws SQLException {
    this.dao.deleteById(id);
}

но что, если мне нужно удалить запись из той же таблицы не по идентификатору, а по имени или в любом другом поле Я хочу что-то вроде

public void Deletefromcanteen(String name,MealType mealtype) {
    this.dao.deletebyName(name);
}

какой запрос я должен писать с помощью querybuilder для удаления записи, где name = name и mealtype = say (lunch)

Я пробовал что-то вроде этого в моем классе базы данных

public  void deletefromcanteen(int id, String mealtype) {
    try {
        Dao<CanteenLog, Integer> canteenDao = getCanteen();
        DeleteBuilder<CanteenLog, Integer> deleteBuilder = canteenDao
                .deleteBuilder();
        deleteBuilder.where().eq("user_id", id).and().eq("meal", mealtype);
        canteenDao.delete(deleteBuilder.prepare());
    } catch (Exception e) {
        ...
    }
}
4b9b3361

Ответ 1

deleteBuilder.where().eq("FIELD_NAME", arg);
deleteBuilder.delete();

Update:

Например:

//Get helper
DatabaseHelper helper = OpenHelperManager.getHelper(App.getContext(), DatabaseHelper.class);

//get dao
Dao dao = helper.getDao(YOUR_CLASS.class);

//delete elements from table in field by arg
DeleteBuilder<CanteenLog, Integer> deleteBuilder = dao.deleteBuilder();
deleteBuilder.where().eq("FIELD_NAME", arg);
deleteBuilder.delete();

Удачи!

Ответ 2

Чтобы сохранить построение запроса, вы можете сделать выбор, чтобы найти идентификатор, а затем выполнить удаление по идентификатору. Thsi будет прост, если у вас уже есть запрос выбора, настроенный для этой таблицы.

Ответ 3

Это можно сделать так же, как

DatabaseHelper.getInstance().getDao(YourObject.class).delete(yourObjectInstance);