Я создал базу данных Room для хранения сообщений в приложении чата и определил таблицу следующим образом:
@Entity(tableName = "message_table")
public class Message {
@NonNull
@PrimaryKey(autoGenerate = true)
public long id;
@NonNull
public String body;
@NonNull
@ColumnInfo(name = "phone_number")
public String phoneNumber;
public Message(String body, String phoneNumber) {
this.body = body;
this.phoneNumber = phoneNumber;
}
}
И когда я запрашиваю все сообщения для данного телефонного номера, он может получить их идеально (используя следующий запрос):
@Query("SELECT * FROM message_table WHERE phone_number = :phoneNumber LIMIT 50")
LiveData<List<Message>> getMessagesByNumber(String phoneNumber);
Но, когда я пытаюсь удалить все сообщения, связанные с одним и тем же номером телефона, с помощью следующей команды, я получаю каждый раз 0 строк:
@Query("DELETE FROM message_table WHERE phone_number = :phoneNumber")
int delete(String phoneNumber);
Я что-то здесь упускаю? Я посмотрел вокруг, но не могу найти решение этой проблемы. (И я уже четыре раза проверил, что номер телефона, используемый в вызовах выбора и удаления, на 100% совпадает со строкой).