2
0
Fork 0

Upgraded backend api with generics.

This commit is contained in:
Willem Cazander 2014-05-28 14:16:03 +02:00
parent 9a6227be5b
commit 1b3e65fa83
53 changed files with 282 additions and 256 deletions

View file

@ -22,6 +22,8 @@
package net.forwardfire.vasc.backends.jpa;
import java.io.Serializable;
import net.forwardfire.vasc.backend.AbstractVascBackend;
import net.forwardfire.vasc.backend.VascBackendException;
@ -33,7 +35,7 @@ import org.hibernate.Session;
* @author Willem Cazander
* @version 1.0 Mar 21, 2007
*/
abstract public class AbstractHibernateVascBackend extends AbstractVascBackend {
abstract public class AbstractHibernateVascBackend<DATA_OBJECT extends Serializable> extends AbstractVascBackend<DATA_OBJECT> {
/**
* Provides a hibernate session which is closed !! when transaction is compleeted.
@ -41,7 +43,7 @@ abstract public class AbstractHibernateVascBackend extends AbstractVascBackend
*/
abstract Session getHibernateSession();
public void persist(Object object) throws VascBackendException {
public void persist(DATA_OBJECT object) throws VascBackendException {
Session s = getHibernateSession();
try {
s.getTransaction().begin();
@ -57,11 +59,11 @@ abstract public class AbstractHibernateVascBackend extends AbstractVascBackend
}
}
public Object merge(Object object) throws VascBackendException {
public DATA_OBJECT merge(DATA_OBJECT object) throws VascBackendException {
Session s = getHibernateSession();
try {
s.getTransaction().begin();
Object result = s.merge(object);
DATA_OBJECT result = (DATA_OBJECT)s.merge(object);
s.getTransaction().commit();
return result;
} finally {
@ -74,7 +76,7 @@ abstract public class AbstractHibernateVascBackend extends AbstractVascBackend
}
}
public void delete(Object object) throws VascBackendException {
public void delete(DATA_OBJECT object) throws VascBackendException {
Session s = getHibernateSession();
try {
s.getTransaction().begin();

View file

@ -22,6 +22,8 @@
package net.forwardfire.vasc.backends.jpa;
import java.io.Serializable;
import javax.persistence.EntityManager;
import net.forwardfire.vasc.backend.AbstractVascBackend;
@ -32,13 +34,13 @@ import net.forwardfire.vasc.backend.VascBackendException;
* @author Willem Cazander
* @version 1.0 Mar 21, 2007
*/
abstract public class AbstractPersistenceVascBackend extends AbstractVascBackend {
abstract public class AbstractPersistenceVascBackend<DATA_OBJECT extends Serializable> extends AbstractVascBackend<DATA_OBJECT> {
protected boolean emTransaction = true;
abstract EntityManager getEntityManager();
public void persist(Object object) throws VascBackendException {
public void persist(DATA_OBJECT object) throws VascBackendException {
EntityManager s = getEntityManager();
try {
if (emTransaction) {
@ -55,13 +57,13 @@ abstract public class AbstractPersistenceVascBackend extends AbstractVascBackend
}
}
public Object merge(Object object) throws VascBackendException {
public DATA_OBJECT merge(DATA_OBJECT object) throws VascBackendException {
EntityManager s = getEntityManager();
try {
if (emTransaction) {
s.getTransaction().begin();
}
Object result = s.merge(object);
DATA_OBJECT result = (DATA_OBJECT)s.merge(object);
if (emTransaction) {
s.getTransaction().commit();
}
@ -73,7 +75,7 @@ abstract public class AbstractPersistenceVascBackend extends AbstractVascBackend
}
}
public void delete(Object object) throws VascBackendException {
public void delete(DATA_OBJECT object) throws VascBackendException {
EntityManager s = getEntityManager();
try {
if (emTransaction) {

View file

@ -22,6 +22,7 @@
package net.forwardfire.vasc.backends.jpa;
import java.io.Serializable;
import java.util.List;
import net.forwardfire.vasc.backend.VascBackendException;
@ -43,7 +44,7 @@ import org.hibernate.Session;
* @author Willem Cazander
* @version 1.0 Mar 17, 2009
*/
public class XpqlHibernateVascBackend extends AbstractHibernateVascBackend {
public class XpqlHibernateVascBackend<DATA_OBJECT extends Serializable> extends AbstractHibernateVascBackend<DATA_OBJECT> {
private HibernateSessionProvider hibernateSessionProvider = null;
@ -73,7 +74,7 @@ public class XpqlHibernateVascBackend extends AbstractHibernateVascBackend {
}
@SuppressWarnings("unchecked")
public List<Object> execute(VascBackendState state) throws VascBackendException {
public List<DATA_OBJECT> execute(VascBackendState state) throws VascBackendException {
// Copy parameters
for (String key:state.getDataParameterKeys()) {
@ -103,7 +104,7 @@ public class XpqlHibernateVascBackend extends AbstractHibernateVascBackend {
q.setFirstResult(state.getPageIndex()*state.getPageSize());
q.setMaxResults(state.getPageSize());
}
List<Object> data = q.list();
List<DATA_OBJECT> data = q.list();
s.getTransaction().commit();
return data;
} finally {

View file

@ -22,6 +22,7 @@
package net.forwardfire.vasc.backends.jpa;
import java.io.Serializable;
import java.util.List;
import javax.persistence.EntityManager;
@ -43,7 +44,7 @@ import net.forwardfire.vasc.xpql.query.QueryParameterValue;
* @author Willem Cazander
* @version 1.0 Mar 17, 2009
*/
public class XpqlPersistanceVascBackend extends AbstractPersistenceVascBackend {
public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extends AbstractPersistenceVascBackend<DATA_OBJECT> {
private EntityManagerProvider entityManagerProvider = null;
@ -76,7 +77,7 @@ public class XpqlPersistanceVascBackend extends AbstractPersistenceVascBackend
@SuppressWarnings("unchecked")
public List<Object> execute(VascBackendState state) throws VascBackendException {
public List<DATA_OBJECT> execute(VascBackendState state) throws VascBackendException {
// Copy parameters
for (String key:state.getDataParameterKeys()) {
@ -84,7 +85,7 @@ public class XpqlPersistanceVascBackend extends AbstractPersistenceVascBackend
//System.out.println("Set para pame: "+key+" value: "+value);
query.setQueryParameter(key, value);
if (queryTotal!=null) {
queryTotal.setQueryParameter(key, value);
queryTotal.setQueryParameter(key, value);
}
}
@ -106,7 +107,7 @@ public class XpqlPersistanceVascBackend extends AbstractPersistenceVascBackend
if (emTransaction) {
em.getTransaction().begin();
}
List<Object> data = q.getResultList();
List<DATA_OBJECT> data = q.getResultList();
if (emTransaction) {
em.getTransaction().commit();
}