我第一次使用糖,似乎一切正常。我可以保存数据,似乎我在尝试查找时获取数据。我的问题是我得到的是对象,而不是我存储的价值而且我不确定为什么,因为我的行为与我在官方文档中看到的相同
这就是我要做的数据:
Select name= Select.from(MyClass.class).where(Condition.prop("name").lt("Bob"));
String data = name.toString();
Log.e("aaaaa", data.toString());
这是我在日志中开始的:
com.orm.query.Select@3ce7ff7b
答案 0 :(得分:0)
使用该Select语句,您将按名称查询MyClass对象,并返回Select对象。
要从中获取名称,您应该从Select中获取结果(这里我用.first()
执行)并将其放入MyClass对象中。然后你可以从中得到名字。
MyClass myClass = Select.from(MyClass.class)
.where(Condition.prop("name").lt("Bob"))
.first();
String name = myClass.getName();
如果您的MyClass有方法getName()
答案 1 :(得分:0)
我在官方文档中看到的相同
我不相信你。
在文档here中,它显示了这段代码:
Select.from(TestRecord.class)
.where(Condition.prop("test").eq("satya"),
Condition.prop("prop").eq(2))
.list();
当您将其与代码进行比较时,您会发现您错过了对list
的调用。
如果您不致电list
,where
方法将返回Select
个对象。这就是你得到的全部。
list
将返回查询找到的所有结果。所以正确的方法是:
List<MyClass> results =
Select.from(MyClass.class).
where(Condition.prop("name").
lt("Bob")).list();
for (MyClass obj: results) {
Log.i("aaaa", obj.toString());
// or you can write
// Log.i("aaaa", obj.name);
}
以上将打印所有结果。如果您只需要第一个结果,可以拨打results.get(0)
。