Я пытаюсь выяснить, как использовать sugarORM (версия 1.4, импортированная с Gradle ).
У меня есть простой объект с public String name
и другими.
Я TEST_TYPE
этот простой объект с этим именем и сохраняю его таким образом (с помощью TEST_TYPE
– случайная строка):
CustomObject type = new CustomObject(TEST_TYPE); long l=type.save(); Toast.makeText(this, "Type ajouté ! id="+l, Toast.LENGTH_SHORT).show();
В моем журнале показывается id = 14, поэтому я предполагаю, что запись в порядке.
Но когда я хочу читать, нет смысла:
CustomObject.count(CustomObject.class)
возвращает 14 CustomObject.findById(CustomObject.class, 2)
возвращает null CustomObject.first(CustomObject.class)
возвращает значение null CustomObject.find(LifeEventType.class, "NAME = ?", new String[]{TEST_TYPE})
возвращает null Я не знаю, связано ли это, но я получаю это исключение в журнале предупреждений: java.lang.NoSuchMethodException: <init> at com.orm.SugarRecord.find(SugarRecord.java:196)
(это код слишком продвинутый для Нуб вроде меня …)
Что я делаю не так ?
Это происходит, когда вы не предоставляете пустой конструктор.
SugarORM может правильно сохранять объекты, но не может создавать их при попытке выполнить запрос выбора.
Решение состоит в том, чтобы включить пустой конструктор и геттеры / сеттеры внутри вашего объекта
public CustomObject(){}
Дополнительная документация здесь