Java源码示例:org.mongodb.morphia.Datastore

示例1
private <T> Query<T> prepareQuery(Object criteria, Datastore dataStore) {

          Query<T> query = (Query<T>) dataStore.createQuery(criteria.getClass());

          List<Field> fields = this.getAllModelFields(criteria.getClass());
          for (Field field : fields) {
               field.setAccessible(true);
               Object value = null;
               try {
                    value = field.get(criteria);
               } catch (IllegalArgumentException | IllegalAccessException e) {
                    log.error(e.getMessage(), e);
               }
               if (value != null) {
                    query.criteria(field.getName()).equal(value);
               }
          }

          return query;
     }
 
示例2
private <T> Query<T> prepareQuery(Object criteria, Datastore dataStore) {

        Query<T> query = (Query<T>) dataStore.createQuery(criteria.getClass());

        List<Field> fields = this.getAllModelFields(criteria.getClass());
        for (Field field : fields) {
            field.setAccessible(true);
            Object value = null;
            try {
                value = field.get(criteria);
            } catch (IllegalArgumentException | IllegalAccessException ignored) {}

            if (value != null) {
                query.criteria(field.getName()).equal(value);
            }
        }

        return query;
    }
 
示例3
@Test
@LocalData
public void should_save_mixed_type_lists() {
    MixedTypeListClass mixed = new MixedTypeListClass();
    Serializable[] mixedList = {1, "teststring", new DummySerialiazable()};
    mixed.mixedTypeList = mixedList;
    Datastore ds = SetupConfig.get().getInjector().getInstance(Datastore.class);
    ds.save(mixed);
    MixedTypeListClass restoredMixed = ds.createQuery(MixedTypeListClass.class).get();

    assertEquals(1, restoredMixed.mixedTypeList[0]);
    assertEquals("teststring", restoredMixed.mixedTypeList[1]);
    assertNotNull(restoredMixed.mixedTypeList[2]);
    assertTrue(restoredMixed.mixedTypeList[2] instanceof DummySerialiazable);
    DummySerialiazable dummy = (DummySerialiazable) restoredMixed.mixedTypeList[2];
    assertEquals("test", dummy.test);
}
 
示例4
@Override
public <T> T merge(T object) {

     try {
          Datastore ds = this.datastore();
          ds.merge(object);
          return findOne(object);
     } catch (Exception e) {
          log.error(e.getMessage(), e);
          return null;
     }

}
 
示例5
@Override
public <T> T merge(T object) {

    try {
        Datastore ds = this.datastore();
        ds.merge(object);
        return findOne(object);
    } catch (Exception e) {
        return null;
    }

}
 
示例6
@Override
protected Datastore createInstance() throws Exception {
	// 这里的username和password可以为null,morphia对象会去处理
	MongoClientURI mongoClientURI = new MongoClientURI(uri);
	Datastore ds = morphia.createDatastore(new MongoClient(mongoClientURI), dbName);
	if (toEnsureIndexes) {
		ds.ensureIndexes();
	}
	if (toEnsureCaps) {
		ds.ensureCaps();
	}
	return ds;
}
 
示例7
public static Datastore getDataStore(Config config) {

        String[] addresses = config.getParameter(ExtConfig.MONGO_ADDRESSES, new String[]{"127.0.0.1:27017"});
        String database = config.getParameter(ExtConfig.MONGO_DATABASE, "lts");
        String username = config.getParameter(ExtConfig.MONGO_USERNAME);
        String pwd = config.getParameter(ExtConfig.MONGO_PASSWORD);

        String cachedKey = StringUtils.concat(StringUtils.concat(addresses), database, username, pwd);

        Datastore datastore = DATA_STORE_MAP.get(cachedKey);
        if (datastore == null) {
            try {
                synchronized (lock) {
                    datastore = DATA_STORE_MAP.get(cachedKey);
                    if (datastore != null) {
                        return datastore;
                    }
                    Morphia morphia = new Morphia();
                    MongoFactoryBean mongoFactoryBean = new MongoFactoryBean(addresses, username, database, pwd);
                    MongoClient mongo = mongoFactoryBean.createInstance();
                    datastore = morphia.createDatastore(mongo, database);
                    DATA_STORE_MAP.put(cachedKey, datastore);
                }
            } catch (Exception e) {
                throw new IllegalStateException(
                        StringUtils.format("connect mongo failed! addresses: {}, database: {}",
                                addresses, database), e);
            }
        }
        return datastore;
    }
 
示例8
@Provides
@Singleton
Datastore provideDatastore(final Mongo mongo) {
    final String databaseName = SetupConfig.get().getDbName();

    final Mapper mapper = new JenkinsMapper();
    final Morphia morphia = new Morphia(mapper);
    return morphia.createDatastore(mongo, databaseName);

}
 
示例9
public int assignNextBuildNumber(final DynamicProject project) {
    final Datastore datastore = getDatastore();
    BuildNumberCounter seq = datastore.findAndModify(
        datastore.find(BuildNumberCounter.class, "key = ", project.getFullName()), // query
        datastore.createUpdateOperations(BuildNumberCounter.class).inc("counter") // update
    );
    if (seq == null) {
        seq = new BuildNumberCounter(project.getFullName(), 1);
        datastore.save(seq);
    }

    return seq.getCounter();
}
 
示例10
@Provides
@Singleton
Datastore provideDatastore(final Mongo mongo) {
    final String databaseName = SetupConfig.get().getDbName();

    final Mapper mapper = new JenkinsMapper();
    final Morphia morphia = new Morphia(mapper);
    return morphia.createDatastore(mongo, databaseName);

}
 
示例11
public Datastore getDatastore() {
	return baseDao.getDatastore();
}
 
示例12
@Override
public Class<?> getObjectType() {
	return Datastore.class;
}
 
示例13
@Override
public Datastore getMorphiaDatastore() {
    return this.morphiaDatastore;
}
 
示例14
@Override
public Datastore getMorphiaDatastore(String name) {
    return this.morphia.createDatastore(this.client, name);
}
 
示例15
public Datastore getDatastore() {
    return datastore;
}
 
示例16
private NetworkRepository(Datastore datastore) {
    super(Network.class, datastore);
}
 
示例17
public static NetworkRepository create(Datastore datastore) {
    return new NetworkRepository(datastore);
}
 
示例18
private BungeeRepository(Datastore datastore) {
    super(Bungee.class, datastore);
}
 
示例19
public static BungeeRepository create(Datastore datastore) {
    return new BungeeRepository(datastore);
}
 
示例20
private BungeeTypeRepository(Datastore datastore) {
    super(BungeeType.class, datastore);
}
 
示例21
public static BungeeTypeRepository create(Datastore datastore) {
    return new BungeeTypeRepository(datastore);
}
 
示例22
private NodeRepository(Datastore datastore) {
    super(Node.class, datastore);
}
 
示例23
public static NodeRepository create(Datastore datstore) {
    return new NodeRepository(datstore);
}
 
示例24
private NodeTypeRepository(Datastore datastore) {
    super(NodeType.class, datastore);
}
 
示例25
public static NodeTypeRepository create(Datastore datastore) {
    return new NodeTypeRepository(datastore);
}
 
示例26
private ServerRepository(Datastore datastore) {
    super(Server.class, datastore);
}
 
示例27
public static ServerRepository create(Datastore datastore) {
    return new ServerRepository(datastore);
}
 
示例28
private ServerTypeRepository(Datastore datastore) {
    super(ServerType.class, datastore);
}
 
示例29
public static ServerTypeRepository create(Datastore datastore) {
    return new ServerTypeRepository(datastore);
}
 
示例30
private PluginTypeRepository(Datastore ds) {
    super(PluginType.class, ds);
}