公开分布式高性能查询的源代码和部署方案.(二)

5)建立复杂的对象关联,在Versant数据库中也很是容易,能够直接理解为内存对象的操做。node

public void createKnownPerson() {数据库

TransSession session = DistributedDatabaseManager.getInstance()session

.createNewSession();dom

session.setDefaultDatabase("dbnodeb");spa

Person personA = new Person();对象

personA.setFirstName("AAF1");内存

personA.setLastName("AAL1");ci

Person personB = new Person();get

personB.setFirstName("BBF1");it

personB.setLastName("BBL1");

personB.addFriend(personA);

Person personC = new Person();

personC.setFirstName("CCF1");

personC.setLastName("CCL1");

personC.addFriend(personB);

Person personD = new Person();

personD.setFirstName("DDF1");

personD.setLastName("DDL1");

personD.addFriend(personC);

session.makePersistent(personA, "dbnodea");

session.makePersistent(personB, "dbnodeb");

session.makePersistent(personC, "dbnodea");

session.makePersistent(personD, "dbnodeb");

System.out.println("Special Test Data created.");

session.commit();

}

6Versant数据库的对象查询

Versant数据库能够支持SQL查询和NOSQL查询两种模式,如下为SQL查询的例子:

TransSession session = DistributedDatabaseManager.getInstance()

.createNewSession();

VQLQuery q = new VQLQuery(

session,

DistributedDatabaseManager.getInstance().HPC_DEMO_NETWORK_NAME,

"select selfoid from com.versant.domain.Person where firstName='AAF1' and lastName='AAL1'");

//"select * from com.versant.domain.Person");

System.out.println("About to execute query, and load root object.");

VEnumeration results = q.execute();

// 建立已经走过的朋友路径,避免回环

System.out

.println("--------------------------------------------------------------------------");

相关文章
相关标签/搜索