Я использую кеш объектов в OrmLite для своих Daos, чтобы гарантировать, что для каждого объекта в моем приложении есть только один экземпляр.
Теперь я обнаружил проблему, когда я ограничиваю запрос, чтобы выбрать только подмножество столбцов. Например. когда мне нужны все идентификаторы, которые в настоящее время хранятся в базе данных. Для этого я использовал следующий код.
Dao<Data, String> dao = getDao(Data.class, String.class);
List<Data> dataList = dao.queryBuilder().selectColumns("id").query();
Я использовал это решение из соображений производительности, потому что оно намного быстрее, чем запрос всего объекта.
Теперь происходит то, что эти объекты данных, возвращаемые запросом, также сохраняются в кэше объектов. Поэтому, когда я делаю обычный запрос (без selectColumns) для объекта Data после него, я получаю тот, который находится в кеше, со всеми остальными записями null.
Это ошибка?