根据OrientDB官方文档,我应该使用以下代码创建带有Object API的连接池。
*.so
但是,我发现OObjectDatabasePool类已被弃用,建议使用 com.orientechnologies.orient.core.db.OPartitionedDatabasePool 。
但是这样,我怎样才能获得OObjectDatabaseTx对象?那是因为OPartitionedDatabasePool.acquire()只能返回ODatabaseDocumentTx对象。
希望有人知道如何解决它。
由于
答案 0 :(得分:2)
使用此代码,您可以获得"对象连接到"然后进行查询等。
获取文档数据库
String remote = "remote:localhost/";
String nameDB = "domain";
String url = remote + nameDB;
OPartitionedDatabasePool pool = new OPartitionedDatabasePool(url, "admin", "admin");
ODatabaseDocumentTx db = pool.acquire();
//use example
List<ODocument> resultset = db.query(new OSQLSynchQuery<Object>("select from ORole"));
for(ODocument doc:resultset) {
System.out.println(doc);
}
db.close();
获取对象数据库
String remote = "remote:localhost/";
String nameDB = "TestPartitioned2";
String url = remote + nameDB;
OServerAdmin serverAdmin = new OServerAdmin(url).connect("root", "root");
serverAdmin.createDatabase(nameDB, "object", "plocal");
System.out.println(" Database '"+nameDB +"' created!..");
OPartitionedDatabasePool pool = new OPartitionedDatabasePool(url, "admin", "admin");
//object
OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire());
db.getEntityManager().registerEntityClass(Person.class);
Person personA = db.newInstance(Person.class);
personA.setName("tennantA");
db.save(personA);
db.close();