public void testJoinDelete() { prepareData(); QueryBuilder<RelationEntity> queryBuilder = createQueryBuilder(5); try { queryBuilder.buildDelete().executeDeleteWithoutDetachingEntities(); } catch (DaoException e) { assertEquals("JOINs are not supported for DELETE queries", e.getMessage()); return; } // Never executed, unsupported by SQLite assertEquals(9, relationEntityDao.count()); assertEquals(10, testEntityDao.count()); assertNull(relationEntityDao.queryBuilder().where(Properties.SimpleString.eq("entity-5")).unique()); }
private Article getArticle(long articleID) { return articleDao.queryBuilder().where(ArticleDao.Properties.Id.eq(articleID)).unique(); }
/******************************get**************************************/ public BBill getBBillById(int id) { return mSession.getBBillDao().queryBuilder() .where(BBillDao.Properties.Id.eq(id)).unique(); }
@Override public void evict(String key) { CacheEntity entity = dao.queryBuilder().where(CacheEntityDao.Properties.Key.eq(key)).unique(); if (entity!=null) { dao.delete(entity); } }
public static boolean isEmpty(String key) { return SessionHolder.daoSession.getCollectionModelDao().queryBuilder().where(CollectionModelDao.Properties.Url.eq(key)).unique() == null; }
public static boolean isEmpty(String key) { return SessionHolder.daoSession.getMarkModelDao().queryBuilder().where(MarkModelDao.Properties.FictionName.eq(key)).unique() == null; }
public static boolean isCollectionEmpty(String key) { return SessionHolder.daoSession.getCollectionModelDao().queryBuilder().where(CollectionModelDao.Properties.Url.eq(key)).unique() == null; }
public static boolean isSearchEmpty(String key) { return SessionHolder.daoSession.getSearchModelDao().queryBuilder().where(SearchModelDao.Properties.SearchContent.eq(key)).unique() == null; }
@Override public Card getCard(long accountId, long remoteId) { QueryBuilder<Card> qb = db.getCardDao().queryBuilder(); return qb.where(CardDao.Properties.AccountId.eq(accountId), CardDao.Properties.Id.eq(remoteId)).unique(); }
@Override public User getUser(long accountId, long remoteId) { QueryBuilder<User> qb = db.getUserDao().queryBuilder(); return qb.where(UserDao.Properties.AccountId.eq(accountId), UserDao.Properties.Id.eq(remoteId)).unique(); }
@Override public Board getBoard(long accountId, long remoteId) { QueryBuilder<Board> qb = db.getBoardDao().queryBuilder(); return qb.where(BoardDao.Properties.AccountId.eq(accountId), BoardDao.Properties.Id.eq(remoteId)).unique(); }
@Override public Label getLabel(long accountId, long remoteId) { QueryBuilder<Label> qb = db.getLabelDao().queryBuilder(); return qb.where(LabelDao.Properties.AccountId.eq(accountId), LabelDao.Properties.Id.eq(remoteId)).unique(); }
@Override public void addCsName(String csName) { if (mView == null) { //检查到view已经被销毁 return; } if (TextUtils.isEmpty(csName)) { mView.showNotice(app.mContext.getString(R.string.course_name_can_not_be_empty)); } else { //TODO 检查 CourseGroupDao groupDao = Cache.instance().getCourseGroupDao(); CourseGroup group = groupDao.queryBuilder().where(CourseGroupDao.Properties.CgName.eq(csName)).unique(); if (group != null) { //notice conflict mView.showNotice(app.mContext.getString(R.string.course_name_is_conflicting)); } else { //add cs_name groupDao.insert(new CourseGroup(null, csName, null)); mView.addCsNameSucceed(); } } }
@Override public Stack getStack(long accountId, long localBoardId, long remoteId) { QueryBuilder<Stack> qb = db.getStackDao().queryBuilder(); return qb.where(StackDao.Properties.AccountId.eq(accountId), StackDao.Properties.BoardId.eq(localBoardId), StackDao.Properties.Id.eq(remoteId)).unique(); }
@Override public <T> Record<T> retrieve(String key, Type type) { CacheEntity entity = dao.queryBuilder().where(CacheEntityDao.Properties.Key.eq(key)).unique(); if (entity==null) return null; long timestamp = entity.timestamp; long expireTime = entity.expireTime; T result = null; if (expireTime<0) { // 缓存的数据从不过期 String json = entity.data; result = converter.fromJson(json,type); } else { if (timestamp + expireTime > System.currentTimeMillis()) { // 缓存的数据还没有过期 String json = entity.data; result = converter.fromJson(json,type); } else { // 缓存的数据已经过期 evict(key); } } return result != null ? new Record<>(Source.PERSISTENCE, key, result, timestamp, expireTime) : null; }
/** * 覆盖本地 */ private void overWriteLocal(List<DownCourseWrapper.DownCourse> downCourses) { mCacheGroup = new HashMap<>(); CourseV2Dao courseDao = Cache.instance().getCourseV2Dao(); for (DownCourseWrapper.DownCourse downCourse : downCourses) { Long groupId = getGroupId(downCourse); if (groupId != null) { CourseV2 oldCourse = courseDao.queryBuilder() .where(CourseV2Dao.Properties.CouOnlyId.eq(downCourse.getOnly_id())) .unique(); if (oldCourse != null) { // 删除手机上的数据 (覆盖) courseDao.delete(oldCourse); } addCourse(downCourse, groupId); } } }
@Override public void deleteCourse(long courseId) { //Cache.instance().getCourseV2Dao().deleteByKey(courseId); CourseV2Dao courseV2Dao = Cache.instance().getCourseV2Dao(); CourseV2 courseV2 = courseV2Dao.queryBuilder() .where(CourseV2Dao.Properties.CouId.eq(courseId)) .unique(); if (courseV2 != null) { courseV2.setCouDeleted(true); courseV2Dao.update(courseV2); } mView.updateCoursePreference(); //must be main thread }
@Override public void editCsName(long id, String newCsName) { CourseGroupDao groupDao = Cache.instance().getCourseGroupDao(); if (mView == null) { //检查到view已经被销毁 return; } CourseGroup group = groupDao.queryBuilder().where(CourseGroupDao.Properties.CgName.eq(newCsName)).unique(); if (group != null) { //notice conflict mView.showNotice(app.mContext.getString(R.string.course_name_is_conflicting)); return; } Cache.instance().getCourseGroupDao().update(new CourseGroup(id, newCsName, null)); mView.editCsNameSucceed(); }
@Override public void getCard(long accountId, long boardId, long stackId, long cardId, IResponseCallback<Card> responseCallback) { QueryBuilder<Card> qb = db.getCardDao().queryBuilder(); respond(responseCallback, () -> { Card card = qb.where( CardDao.Properties.AccountId.eq(accountId), CardDao.Properties.StackId.eq(stackId), CardDao.Properties.LocalId.eq(cardId) ).unique(); //preload eager card.getLabels(); card.getAssignedUsers(); DeckLog.log(card.getLabels().size()+""); return card; } ); }
@Override public void getStack(long accountId, long localBoardId, long stackId, IResponseCallback<Stack> responseCallback) { QueryBuilder<Stack> qb = db.getStackDao().queryBuilder(); respond(responseCallback, () -> { Stack stack = qb.where( StackDao.Properties.AccountId.eq(accountId), StackDao.Properties.BoardId.eq(localBoardId), StackDao.Properties.LocalId.eq(stackId) ).unique(); // eager preload for (Card c : stack.getCards()){ DeckLog.log("labels for card "+c.getTitle()+": "+c.getLabels().size()); c.getAssignedUsers(); c.getLabels(); } return stack; }); }