switch from jpa to orientdb

This commit is contained in:
2014-08-16 01:49:39 +02:00
parent 07b78c520c
commit cb9032ce30
17 changed files with 89 additions and 173 deletions

View File

@@ -5,13 +5,15 @@
*/
package de.geofroggerfx.service;
import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery;
import com.orientechnologies.orient.object.db.OObjectDatabaseTx;
import de.geofroggerfx.application.ProgressEvent;
import de.geofroggerfx.application.ProgressListener;
import de.geofroggerfx.model.*;
import de.geofroggerfx.model.Cache;
import de.geofroggerfx.model.CacheList;
import de.geofroggerfx.sql.DatabaseService;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import java.util.ArrayList;
import java.util.List;
@@ -35,10 +37,9 @@ public class CacheServiceImpl implements CacheService {
@Override
public void storeCaches(List<Cache> caches) {
EntityManager em = dbService.getEntityManager();
OObjectDatabaseTx database = dbService.getDatabase();
try {
int transactionNumber = 0;
int currentCacheNumber = 0;
int numberOfCaches = caches.size();
for (Cache cache : caches) {
@@ -48,42 +49,10 @@ public class CacheServiceImpl implements CacheService {
"Save caches to Database " + currentCacheNumber + " / " + numberOfCaches,
(double) currentCacheNumber / (double) numberOfCaches));
// begin transaction if the transaction counter is set to zero
if (transactionNumber == 0) { em.getTransaction().begin(); }
transactionNumber++;
em.merge(cache.getOwner());
em.merge(cache.getMainWayPoint());
for (Log log: cache.getLogs()) {
em.merge(log);
em.merge(log.getFinder());
}
for (Attribute attribute: cache.getAttributes()) {
em.merge(attribute);
}
for (TravelBug bug: cache.getTravelBugs()) {
em.merge(bug);
}
em.merge(cache);
// comit every X caches
if (transactionNumber == TRANSACTION_SIZE) {
em.getTransaction().commit();
transactionNumber = 0;
}
}
// if there wasn?t a commit right before, commit the rest
if (transactionNumber != 0) {
em.getTransaction().commit();
database.save(cache);
}
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
}
fireEvent(new ProgressEvent("Database",
@@ -98,9 +67,9 @@ public class CacheServiceImpl implements CacheService {
List<Cache> caches = new ArrayList<>();
try {
EntityManager em = dbService.getEntityManager();
String query = "select c from Cache c order by c."+sortField.getFieldName()+" "+direction.toString();
List<Cache> result = em.createQuery(query).getResultList();
OObjectDatabaseTx database = dbService.getDatabase();
String query = "select * from Cache order by "+sortField.getFieldName()+" "+direction.toString();
List<Cache> result = database.query(new OSQLSynchQuery<Cache>(query));
if (result != null) {
caches = result;
}
@@ -122,9 +91,9 @@ public class CacheServiceImpl implements CacheService {
public List<CacheList> getAllCacheLists() {
List<CacheList> lists = new ArrayList<>();
try {
EntityManager em = dbService.getEntityManager();
String query = "select l from CacheList l order by l.name";
List<CacheList> result = em.createQuery(query).getResultList();
OObjectDatabaseTx database = dbService.getDatabase();
String query = "select * from CacheList order by name";
List<CacheList> result = database.query(new OSQLSynchQuery<CacheList>(query));
if (result != null) {
lists = result;
}
@@ -139,10 +108,12 @@ public class CacheServiceImpl implements CacheService {
public boolean doesCacheListNameExist(String name) {
boolean doesExist = false;
try {
EntityManager em = dbService.getEntityManager();
String query = "select count(l) from CacheList l where l.name = :name";
Long result = (Long)em.createQuery(query).setParameter("name", name).getSingleResult();
doesExist = result > 0;
OObjectDatabaseTx database = dbService.getDatabase();
String query = "select * from CacheList l where l.name = :name";
List<CacheList> result = database.query(new OSQLSynchQuery<CacheList>(query));
if (result != null) {
doesExist = result.size() > 0;
}
} catch (Exception e) {
e.printStackTrace();
}
@@ -151,14 +122,11 @@ public class CacheServiceImpl implements CacheService {
@Override
public void deleteCacheList(CacheList cacheList) {
EntityManager em = dbService.getEntityManager();
OObjectDatabaseTx database = dbService.getDatabase();
try {
em.getTransaction().begin();
em.remove(cacheList);
em.getTransaction().commit();
database.delete(cacheList);
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
}
}
@@ -167,14 +135,11 @@ public class CacheServiceImpl implements CacheService {
*/
@Override
public void storeCacheList(CacheList list) {
EntityManager em = dbService.getEntityManager();
OObjectDatabaseTx database = dbService.getDatabase();
try {
em.getTransaction().begin();
em.merge(list);
em.getTransaction().commit();
database.save(list);
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
}
}
}