ORMLite 如果存在查询

ORMLite if exists query

我需要 ORMLite 方面的帮助。我有 ListView,其中包含从 API 下载的对象。在每个项目上我都有 ToggleButton。单击该 TB 项目后,该项目将添加到我的数据库中,并且 TB stata 被检查为 "clicked"。这一切都发生在我的主要片段中,但是当我切换片段并再次回到主要片段时,TB 再次设置为 "unclicked"。所以,我需要做的是检查主片段何时被创建,如果来自 listView 的对象存在于数据库中,如果是的话,检查 ToggleButton 状态是否被点击(我认为这是一个正确的选择)但我不知道如何写查询:/

这是我从适配器向数据库添加项目的代码:

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
   if(isChecked) {
       try {
           final Dao<Concert, Integer> concertDao = getHelper().getConcertDao();
           concertDao.create(concertList.get(position));
        } catch (SQLException e) {
           e.printStackTrace();
        }
    }
}

有很多方法可以实现这一点。我建议查看 QueryBuilder documentation。你显然可以做这样的事情:

if (concertDao.queryForId(concert.getId()) != null) {
   // the concert exists in the database
}

如果你不想反序列化对象,你可以这样做:

if (concertDao.queryBuilder().where().eq("id", concert.getId()).countOf() > 0) {
   // the concert exists in the database
}