/** * @param kind * @param clazz * @param property * @param value * @param offset * @param size * @param <T> * @param <V> * @return */ public <T, V> Query<T> find(String kind, Class<T> clazz, String property, V value, int offset, int size) { return find(kind, clazz, property, value, offset, size, true); }
/** * @param kind * @param clazz * @param id * @param <T> * @param <V> * @return */ public <T, V> T get(String kind, Class<T> clazz, V id) { List<T> results = find(kind, clazz, Mapper.ID_KEY, id, 0, 1).asList(); if (results == null || results.size() == 0) return null; return results.get(0); }
/** * @param kind * @param clazz * @param id * @param <T> * @param <V> * @return */ public <T, V> WriteResult delete(String kind, Class<T> clazz, V id) { return delete(find(kind, clazz).filter(Mapper.ID_KEY, id)); }
/** * @param clazz * @param ids * @param <T> * @param <V> * @return */ public <T, V> WriteResult delete(Class<T> clazz, Iterable<V> ids) { Query<T> q = find(clazz).disableValidation().filter(Mapper.ID_KEY + " in", ids); return delete(q); }
/** * Queries the server to check for each DBRef. */ public <T> List<Key<T>> getKeysByRefs(List<DBRef> refs) { ArrayList<Key<T>> tempKeys = new ArrayList<Key<T>>(refs.size()); Map<String, List<DBRef>> kindMap = new HashMap<String, List<DBRef>>(); for (DBRef ref : refs) { if (kindMap.containsKey(ref.getRef())) kindMap.get(ref.getRef()).add(ref); else kindMap.put(ref.getRef(), new ArrayList<DBRef>(Collections.singletonList((DBRef) ref))); } for (String kind : kindMap.keySet()) { List<Object> objIds = new ArrayList<Object>(); List<DBRef> kindRefs = kindMap.get(kind); for (DBRef key : kindRefs) { objIds.add(key.getId()); } List<Key<T>> kindResults = this.<T>find(kind, null).disableValidation().filter("_id in", objIds).asKeyList(); tempKeys.addAll(kindResults); } //put them back in order, minus the missing ones. ArrayList<Key<T>> keys = new ArrayList<Key<T>>(refs.size()); for (DBRef ref : refs) { Key<T> testKey = mapr.refToKey(ref); if (tempKeys.contains(testKey)) keys.add(testKey); } return keys; }
/** * @param clazz * @param ids * @param <T> * @param <V> * @return */ public <T, V> Query<T> get(Class<T> clazz, Iterable<V> ids) { return find(clazz).disableValidation().filter(Mapper.ID_KEY + " in", ids).enableValidation(); }
/** * @param clazz * @param id * @param <T> * @param <V> * @return */ public <T, V> T get(Class<T> clazz, V id) { return find(getCollection(clazz).getName(), clazz, Mapper.ID_KEY, id, 0, 1, true).get(); }
objIds.add(key.getId()); List kindResults = find(kind, kindClass).disableValidation().filter("_id in", objIds).asList(); entities.addAll(kindResults);
/** * @param kind * @param clazz * @param property * @param value * @param offset * @param size * @param validate * @param <T> * @param <V> * @return */ public <T, V> Query<T> find(String kind, Class<T> clazz, String property, V value, int offset, int size, boolean validate) { Query<T> query = find(kind, clazz); if (!validate) query.disableValidation(); query.offset(offset); query.limit(size); return query.filter(property, value).enableValidation(); }
/** * @param entityOrKey * @return */ public Key<?> exists(Object entityOrKey) { entityOrKey = ProxyHelper.unwrap(entityOrKey); Key<?> key = mapr.getKey(entityOrKey); Object id = key.getId(); if (id == null) throw new MappingException("Could not get id for " + entityOrKey.getClass().getName()); String collName = key.getKind(); if (collName == null) collName = getCollection(key.getKindClass()).getName(); return find(collName, key.getKindClass()).filter(Mapper.ID_KEY, key.getId()).getKey(); }
Object idValue = dbObj.get(Mapper.ID_KEY); UpdateResults<T> res = update(find(dbColl.getName(), (Class<T>) entity.getClass()).filter(Mapper.ID_KEY, idValue).filter(versionKeyName, oldVersion), dbObj, false,