3

我试图弄清楚如何使用 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)返回空
  • CustomObject.first(CustomObject.class)返回空
  • CustomObject.find(LifeEventType.class, "NAME = ?", new String[]{TEST_TYPE})返回空

我不知道它是否相关,但我在警告日志中得到了这个异常:( java.lang.NoSuchMethodException: <init> at com.orm.SugarRecord.find(SugarRecord.java:196)对于像我这样的菜鸟来说,代码太高级了......)

我究竟做错了什么 ?

4

1 回答 1

19

当您不提供空的构造函数时,就会发生这种情况。

SugarORM 可以正确保存实体,但在您尝试执行选择查询时无法实例化它们。

解决方案是在您的实体中包含一个空的构造函数和 getter/setter

public CustomObject(){}

更多文档在这里

于 2016-02-22T15:37:51.723 回答