2016-03-22 5 views
3

Nach OrientDB offiziellen Dokument sollte ich Verbindungspool mit Objekt-API mit folgendem Code erstellen.Wie bekomme ich OObjectDatabaseTx von ConnectionPool?

// OPEN THE DATABASE 
OObjectDatabaseTx db= OObjectDatabasePool.global().acquire("remote:localhost/petshop", "admin", "admin"); 

Allerdings fand ich, dass OObjectDatabasePool Klasse ist veraltet und wurde vorgeschlagen com.orientechnologies.orient.core.db.OPartitionedDatabasePool stattdessen zu verwenden.

Aber auf diese Weise, wie kann ich OObjectDatabaseTx Objekt bekommen? Dies liegt daran, dass OPartitionedDatabasePool.acquire() nur das ODatabaseDocumentTx-Objekt zurückgeben kann.

Hoffe, es gibt jemanden weiß, wie man es löst.

Dank

+0

Hi Xianyi, welche OrientDB Version verwendest du? – LucaS

+0

@LucaS Die von mir verwendete Version ist 2.1.13 –

+0

@XianyiYe, ich habe die vorherige Antwort bearbeitet und den Code hinzugefügt, um "OObjectDatabaseTx" von "OPartitionedDatabasePool" zu erhalten. Ich denke, das ist näher an dem, was Sie wollten. – lsavio

Antwort

2

Mit diesem Code, den Sie "Objekt zu verbinden" erhalten und dann Abfragen usw.

GET DOCUMENT DB

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(); 

GET OBJECT DB

machen
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(); 
+0

@ lsavio Das ist was ich will und es ist wirklich großartig! Danke für deine schnelle Hilfe !! –