我正在试图找出如何使用sugarORM(1.4版本,使用Gradle导入).
我有一个带public String name
字段的简单对象,等等.
我使用该名称构造该简单对象并将其保存为此(使用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:
对于像我这样的菜鸟而言代码太高级了......)
我究竟做错了什么 ?
当你不提供一个空的构造函数时会发生这种情况.
SugarORM可以正确保存实体,但在尝试执行选择查询时无法实例化它们.
解决方案是在实体中包含一个空构造函数和getter/setter
public CustomObject(){}
这里有更多文档