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(); } 6)Versant数据库的对象查询 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("--------------------------------------------------------------------------"); |