查询id需要整数参数

时间:2013-03-21 08:58:55

标签: android eclipse orm ormlite

在文档中提到了以下内容:

Account account = accountDao.queryForId("John Smith");
if (account == null) {
    // the name "John Smith" does not match any rows
}   

但是在Eclipse(android)中我只看到传递整数作为参数的选项? 有什么帮助吗?

2 个答案:

答案 0 :(得分:10)

Dao个对象使用泛型来强制执行与您的实体关联的ID类型。如果你只看到将整数传递给dao.queryForId(...)的选项那么你可能错误地定义了dao:

Dao<Account, Integer> accountDao = getDao(Account.class);

第一个泛型参数指定实体的类型,第二个泛型参数指定该实体中ID字段的类型。使用Integer,您将调用accountDao.queryForId(Integer)

正如@Tomas所提到的,你需要用以下内容来定义你的DOA:

Dao<Account, String> accountDao = getDao(Account.class);

然后,您可以通过Account ID:

查询String
Account account = accountDao.queryForId("John Smith");

答案 1 :(得分:3)

首先,您应该定义哪些实体ID是String类型:

@DatabaseTable()
public class Account {

    @DatabaseField(id = true)
    private String mFullName;
    ...
}

然后你应该根据实体类型和它的ID类型声明Dao对象。现在,您可以使用ID类型为String的queryForId:

Dao<Account, String> accountDao = getAccountDao();
Account account = accountDao.queryForId("John Smith");
if (account == null) {
    // the name "John Smith" does not match any rows
}