Использование UUID в качестве идентификатора в ORMLite (Android)
Вопрос
Я успешно создал таблицу с ORMLite, в которой, похоже, правильно добавлен столбец uuid в качестве первичного ключа, индекса и т. д.
родовое словоТеперь я хотел бы иметь возможность использовать всю мощь предоставленного DAO и делать это (Stat - мой класс, который нужно сохранить, getUUID () возвращает UUID):
родовое словоКомпилятор выдает ошибку:
родовое словоЧто мне не хватает, так это как использовать идентификаторы UUID в таких методах, как deleteById , которые принимают целые числа. Я читал, что UUID в качестве идентификатора был включен в ORMLite, но не упоминал, зашел ли он только до включения их в качестве первичных ключей, не поддерживая все эти вспомогательные методы (queryForId, deleteIds) и т. Д.
Решение
Чтобы использовать метод deleteById (ID), необходимо создать код Dao<T,ID>
с соответствующими параметрами, которые были определены в вашем T-классе.Идентификатор будет интерпретироваться как любой тип, который вы определяете в своем классе T как первичный ключ.В данном конкретном случае это тип UUID, и, глядя на исключение, DAO был создан с использованием кода Dao<Stat, Integer>
и должен был быть создан следующим образом:
надеюсь, что это поможет