OSDN Git Service

(no commit message)
[spiga-app/vaadin.git] / src / main / java / net / korabo / app / vaadin01 / srv / ContactService.java
index 7533df5..048ce3b 100644 (file)
@@ -11,15 +11,11 @@ import com.orientechnologies.orient.object.db.OObjectDatabaseTx;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Calendar;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Random;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import net.korabo.app.vaadin01.ent.Contact;
-import net.korabo.lib.beans.InstanceUtil;
 
 /**
  *
@@ -40,7 +36,7 @@ public class ContactService {
     private static ContactService instance;
     private static OPartitionedDatabasePool pool;
 
-    public static ContactService createDemoService(){
+    public static ContactService createDemoService() {
         try {
             return createService0();
         } catch (IOException ex) {
@@ -48,7 +44,7 @@ public class ContactService {
         }
         return null;
     }
-    
+
     private static ContactService createService0() throws IOException {
         if (instance == null) {
 
@@ -65,7 +61,7 @@ public class ContactService {
             String url = remote + nameDB;
 
             OServerAdmin serverAdmin = new OServerAdmin(url).connect("root", "korabo");
-            if (!serverAdmin.listDatabases().containsKey(nameDB)){
+            if (!serverAdmin.listDatabases().containsKey(nameDB)) {
                 serverAdmin.createDatabase(nameDB, "object", "plocal");
                 System.out.println(" Database '" + nameDB + "' created!..");
             }
@@ -75,6 +71,7 @@ public class ContactService {
             try (
                     OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
                 db.getEntityManager().registerEntityClass(Contact.class);
+                
                 if (db.countClass(Contact.class) == 0) {
                     // init
                     Random r = new Random(0);
@@ -89,7 +86,7 @@ public class ContactService {
                         cal.set(1930 + r.nextInt(70),
                                 r.nextInt(11), r.nextInt(28));
                         contact.setBirthDate(cal.getTime());
-                        db.save(contact);
+                        db.attachAndSave(contact);
                     }
                     db.commit();
                 }
@@ -109,13 +106,13 @@ public class ContactService {
                 OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
             db.getEntityManager().registerEntityClass(Contact.class);
             for (Contact contact : db.browseClass(Contact.class)) {
-              boolean passesFilter = (stringFilter == null || stringFilter.isEmpty())
-                || contact.toString().toLowerCase()
-                  .contains(stringFilter.toLowerCase());
-              if (passesFilter) {
-                contact = db.detach(contact);
-                arrayList.add(contact);
-              }
+                boolean passesFilter = (stringFilter == null || stringFilter.isEmpty())
+                        || contact.toString().toLowerCase()
+                        .contains(stringFilter.toLowerCase());
+                if (passesFilter) {
+//                contact = db.detach(contact);
+                    arrayList.add(db.detach(contact, true));
+                }
             }
 
         }
@@ -156,6 +153,13 @@ public class ContactService {
     }
 
     public synchronized void save(Contact entry) {
+        try (
+                OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
+            db.getEntityManager().registerEntityClass(Contact.class);
+            db.begin();
+            db.attachAndSave(entry);
+            db.commit();
+        }
 //        if (entry.getId() == null) {
 //            entry.setId(nextId++);
 //        }