База данных Android Room возвращает только первые 5000 символов текстового поля.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 База данных Android Room возвращает только первые 5000 символов текстового поля.

Сообщение Anonymous »

Я пытаюсь получить длинную строку, сохраненную в таблице базы данных моей комнаты. Но я заметил, что запрос DAO возвращает только первые 5000 символов этой строки.
Я вижу, что в базе данных существуют полные 11 000 символов после того, как я сбрасываю ее на свое устройство и проверяю. это (с использованием браузера БД для SQLite). Полный необрезанный текст существует как в моей таблице ENTRIES, так и в моей таблице ENTRIES_content.
Объект комнаты:
//@Fts4(tokenizer = FtsOptions.TOKENIZER_UNICODE61)
@Fts4
@Entity(tableName = "ENTRIES")
public class Entry {
private int rowid;

@ColumnInfo(name = "date")
private String date;

@ColumnInfo(name = "entry")
private String entryText;

public String getEntryText() {
return entryText;
}
}

ДАО:
@Dao
public interface EntriesDAO {
...
@Query("SELECT *, rowid FROM ENTRIES WHERE date LIKE :date")
Entry getEntryByDate(String date);
}

Запись извлекается из базы данных с использованием шаблона ViewModel, который вызывает уровень репозитория, который затем, наконец, вызывает метод DAO, который я показал выше.
mEntriesViewModel = new ViewModelProvider(this, factory).get(EntriesViewModel.class);
...
Entry currentEntry = mEntriesViewModel.getEntryByDate(entryDate);
String entryText = currentEntry.getEntryText();
entryText.length(); // 5000

Я попробовал использовать два альтернативных запроса ниже, но они оба вернули один и тот же усеченный текст:
@Query("SELECT *, rowid FROM ENTRIES WHERE rowid = (SELECT rowid FROM ENTRIES WHERE date LIKE :date)")

@RawQuery
Entry getEntryByDateRaw(SupportSQLiteQuery query);
// Used with this
//SupportSQLiteQuery query = new SimpleSQLiteQuery("SELECT * FROM ENTRIES WHERE date LIKE ?", new Object[]{ "%2024-01-01%" });
//return mEntriesViewModel.getEntryByDateRaw(query);


Подробнее здесь: https://stackoverflow.com/questions/786 ... text-field
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»