ORMLite如果存在查询

Bar*_*tos 2 java query-builder ormlite

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

这是我的适配器代码,它将项目添加到DB:

@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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Gra*_*ray 6

很多方法来实现这一目标.我建议查看QueryBuilder文档.你显然可以这样做:

if (concertDao.queryForId(concert.getId()) != null) {
   // the concert exists in the database
}
Run Code Online (Sandbox Code Playgroud)

如果您不想反序列化对象,可以执行以下操作:

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