WIP: left over open files for long...
This commit is contained in:
parent
0a2398c5c1
commit
76aa74990e
165 changed files with 4299 additions and 3373 deletions
|
|
@ -1,29 +1,30 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>vasc-backend</artifactId>
|
||||
<groupId>net.forwardfire.vasc.backend</groupId>
|
||||
<version>0.4.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>vasc-backend-jpa</artifactId>
|
||||
<name>vasc-backend-jpa</name>
|
||||
<description>vasc-backend-jpa</description>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc.backend</groupId>
|
||||
<artifactId>vasc-backend-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc.lib</groupId>
|
||||
<artifactId>vasc-lib-xpql</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.persistence</groupId>
|
||||
<artifactId>persistence-api</artifactId>
|
||||
<version>${persistence-api.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>vasc-backend</artifactId>
|
||||
<groupId>net.forwardfire.vasc.backend</groupId>
|
||||
<version>0.4.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>vasc-backend-jpa</artifactId>
|
||||
<name>vasc-backend-jpa</name>
|
||||
<description>vasc-backend-jpa</description>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc.backend</groupId>
|
||||
<artifactId>vasc-backend-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc.lib</groupId>
|
||||
<artifactId>vasc-lib-xpql</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax</groupId>
|
||||
<artifactId>javaee-api</artifactId>
|
||||
<version>${javaee-api.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -26,73 +26,54 @@ import java.io.Serializable;
|
|||
|
||||
import javax.persistence.EntityManager;
|
||||
|
||||
import net.forwardfire.vasc.backend.AbstractVascBackend;
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.AbstractVascBackendLocal;
|
||||
|
||||
/**
|
||||
* AbstractPersistenceVascBackend.
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Mar 21, 2007
|
||||
* @version 1.0 Aug 25, 2014
|
||||
*/
|
||||
abstract public class AbstractPersistenceVascBackend<DATA_OBJECT extends Serializable> extends AbstractVascBackend<DATA_OBJECT> {
|
||||
abstract public class AbstractPersistenceVascBackend<DATA_PK extends Serializable> extends AbstractVascBackendLocal<DATA_PK> {
|
||||
|
||||
protected boolean emTransaction = true;
|
||||
private Boolean emTransaction;
|
||||
|
||||
abstract EntityManager getEntityManager();
|
||||
private EntityManagerProvider entityManagerProvider = null;
|
||||
|
||||
abstract protected void startBackendPersistence();
|
||||
|
||||
/**
|
||||
* @see net.forwardfire.vasc.backend.AbstractVascBackendLocal#startBackendLocal()
|
||||
*/
|
||||
@Override
|
||||
public void persist(DATA_OBJECT object) throws VascBackendException {
|
||||
EntityManager s = getEntityManager();
|
||||
try {
|
||||
if (emTransaction) {
|
||||
s.getTransaction().begin();
|
||||
}
|
||||
s.persist(object);
|
||||
if (emTransaction) {
|
||||
s.getTransaction().commit();
|
||||
}
|
||||
} finally {
|
||||
if (s!=null) {
|
||||
//s.close();
|
||||
}
|
||||
}
|
||||
protected final void startBackendLocal() {
|
||||
requireNonNull(getEntityManagerProvider(), "entityManagerProvider is null.");
|
||||
//requireNonEmpty(keyMapType.keySet(), "No primary keys defined.");
|
||||
startBackendPersistence();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DATA_OBJECT merge(DATA_OBJECT object) throws VascBackendException {
|
||||
EntityManager s = getEntityManager();
|
||||
try {
|
||||
if (emTransaction) {
|
||||
s.getTransaction().begin();
|
||||
}
|
||||
DATA_OBJECT result = (DATA_OBJECT)s.merge(object);
|
||||
if (emTransaction) {
|
||||
s.getTransaction().commit();
|
||||
}
|
||||
return result;
|
||||
} finally {
|
||||
if (s!=null) {
|
||||
//s.close();
|
||||
}
|
||||
protected final EntityManager getEntityManager() {
|
||||
if (emTransaction == null) {
|
||||
emTransaction=entityManagerProvider.hasEntityManagerTransaction();
|
||||
}
|
||||
return entityManagerProvider.getEntityManager();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(DATA_OBJECT object) throws VascBackendException {
|
||||
EntityManager s = getEntityManager();
|
||||
try {
|
||||
if (emTransaction) {
|
||||
s.getTransaction().begin();
|
||||
}
|
||||
Object newObject = s.merge(object);
|
||||
s.remove(newObject);
|
||||
if (emTransaction) {
|
||||
s.getTransaction().commit();
|
||||
}
|
||||
} finally {
|
||||
if (s!=null) {
|
||||
//s.close();
|
||||
}
|
||||
}
|
||||
protected final boolean hasTransaction() {
|
||||
return emTransaction;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the entityManagerProvider
|
||||
*/
|
||||
public final EntityManagerProvider getEntityManagerProvider() {
|
||||
return entityManagerProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param entityManagerProvider the entityManagerProvider to set
|
||||
*/
|
||||
public final void setEntityManagerProvider(EntityManagerProvider entityManagerProvider) {
|
||||
this.entityManagerProvider = entityManagerProvider;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
/*
|
||||
* Copyright 2007-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.vasc.backends.jpa;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
|
||||
import net.forwardfire.vasc.backend.VascBackendAccessDataKey;
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.VascBackendAccessDataRecord;
|
||||
import net.forwardfire.vasc.backend.crud.VascBackendCrud;
|
||||
|
||||
/**
|
||||
* Manages persistance with xpql queries
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Mar 17, 2009
|
||||
*/
|
||||
public class PersistanceVascBackendCrud<DATA_PK extends Serializable,DATA_RECORD extends Serializable> extends AbstractPersistenceVascBackend<DATA_PK> implements VascBackendCrud<DATA_PK,DATA_RECORD> {
|
||||
|
||||
private Class<DATA_RECORD> recordClass = null;
|
||||
|
||||
public PersistanceVascBackendCrud() {
|
||||
}
|
||||
|
||||
public PersistanceVascBackendCrud(Class<DATA_RECORD> recordClass) {
|
||||
setRecordClass(recordClass);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startBackendPersistence() {
|
||||
requireNonNull(getRecordClass(), "recordClass is null");
|
||||
}
|
||||
|
||||
@Override
|
||||
public VascBackendAccessDataRecord<DATA_PK, DATA_RECORD> createVascBackendAccessDataRecord() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VascBackendAccessDataKey<DATA_PK> createVascBackendAccessDataKey() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public DATA_RECORD newRecord() throws VascBackendException {
|
||||
try {
|
||||
return getRecordClass().newInstance();
|
||||
} catch (InstantiationException | IllegalAccessException e) {
|
||||
throw new VascBackendException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DATA_RECORD fetch(DATA_PK recordPK) throws VascBackendException {
|
||||
EntityManager s = getEntityManager();
|
||||
try {
|
||||
if (hasTransaction()) {
|
||||
s.getTransaction().begin();
|
||||
}
|
||||
DATA_RECORD record = s.find(getRecordClass(), recordPK);
|
||||
if (hasTransaction()) {
|
||||
s.getTransaction().commit();
|
||||
}
|
||||
return record;
|
||||
} finally {
|
||||
if (s!=null) {
|
||||
//s.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DATA_RECORD persist(DATA_RECORD record) throws VascBackendException {
|
||||
EntityManager s = getEntityManager();
|
||||
try {
|
||||
if (hasTransaction()) {
|
||||
s.getTransaction().begin();
|
||||
}
|
||||
s.persist(record);
|
||||
if (hasTransaction()) {
|
||||
s.getTransaction().commit();
|
||||
}
|
||||
return record;
|
||||
} finally {
|
||||
if (s!=null) {
|
||||
//s.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DATA_RECORD merge(DATA_RECORD record) throws VascBackendException {
|
||||
EntityManager s = getEntityManager();
|
||||
try {
|
||||
if (hasTransaction()) {
|
||||
s.getTransaction().begin();
|
||||
}
|
||||
DATA_RECORD result = (DATA_RECORD)s.merge(record);
|
||||
if (hasTransaction()) {
|
||||
s.getTransaction().commit();
|
||||
}
|
||||
return result;
|
||||
} finally {
|
||||
if (s!=null) {
|
||||
//s.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(DATA_PK recordPK) throws VascBackendException {
|
||||
EntityManager s = getEntityManager();
|
||||
try {
|
||||
if (hasTransaction()) {
|
||||
s.getTransaction().begin();
|
||||
}
|
||||
Object newObject = s.find(Object.class,recordPK);
|
||||
s.remove(newObject);
|
||||
if (hasTransaction()) {
|
||||
s.getTransaction().commit();
|
||||
}
|
||||
} finally {
|
||||
if (s!=null) {
|
||||
//s.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Class<DATA_RECORD> getRecordClass() {
|
||||
return recordClass;
|
||||
}
|
||||
|
||||
public void setRecordClass(Class<DATA_RECORD> recordClass) {
|
||||
this.recordClass = recordClass;
|
||||
}
|
||||
}
|
||||
|
|
@ -23,32 +23,30 @@
|
|||
package net.forwardfire.vasc.backends.jpa;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.Query;
|
||||
|
||||
import net.forwardfire.vasc.backend.DefaultVascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendAccessDataKey;
|
||||
import net.forwardfire.vasc.backend.VascBackendException;
|
||||
import net.forwardfire.vasc.backend.VascBackendResult;
|
||||
import net.forwardfire.vasc.backend.VascBackendState;
|
||||
import net.forwardfire.vasc.backend.VascEntryFieldValue;
|
||||
import net.forwardfire.vasc.backend.VascEntryRecordCreator;
|
||||
import net.forwardfire.vasc.backend.data.BeanVascEntryFieldValue;
|
||||
import net.forwardfire.vasc.backend.data.BeanVascEntryRecordCreator;
|
||||
import net.forwardfire.vasc.backend.VascBackendAccessDataRecord;
|
||||
import net.forwardfire.vasc.backend.data.BeanVascBackendAccessDataRecord;
|
||||
import net.forwardfire.vasc.backend.list.DefaultVascBackendListResult;
|
||||
import net.forwardfire.vasc.backend.list.VascBackendList;
|
||||
import net.forwardfire.vasc.backend.list.VascBackendListFeature;
|
||||
import net.forwardfire.vasc.backend.list.VascBackendListResult;
|
||||
import net.forwardfire.vasc.backend.list.VascBackendListRequest;
|
||||
import net.forwardfire.vasc.xpql.query.QueryParameterValue;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Manages persistance with xpql queries
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Mar 17, 2009
|
||||
*/
|
||||
public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extends AbstractPersistenceVascBackend<DATA_OBJECT> {
|
||||
|
||||
private EntityManagerProvider entityManagerProvider = null;
|
||||
public class PersistanceVascBackendXpqlList<DATA_PK extends Serializable,DATA_RECORD extends Serializable> extends AbstractPersistenceVascBackend<DATA_PK> implements VascBackendList<DATA_PK,DATA_RECORD> {
|
||||
|
||||
private net.forwardfire.vasc.xpql.query.Query query = null;
|
||||
|
||||
|
|
@ -62,38 +60,62 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
|
||||
private net.forwardfire.vasc.xpql.query.Query queryMoveDownUp = null;
|
||||
|
||||
private Class<?> resultClass = null;
|
||||
|
||||
public XpqlPersistanceVascBackend() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see net.forwardfire.vasc.backends.jpa.AbstractPersistenceVascBackend#getEntityManager()
|
||||
*/
|
||||
@Override
|
||||
EntityManager getEntityManager() {
|
||||
emTransaction=entityManagerProvider.hasEntityManagerTransaction();
|
||||
return entityManagerProvider.getEntityManager();
|
||||
public PersistanceVascBackendXpqlList() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public VascBackendResult<DATA_OBJECT> execute(VascBackendState state) throws VascBackendException {
|
||||
return new DefaultVascBackendResult<DATA_OBJECT>(executeList(state),fetchTotalExecuteSize(state));
|
||||
protected void startBackendPersistence() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public VascBackendAccessDataRecord<DATA_PK, DATA_RECORD> createVascBackendAccessDataRecord() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VascBackendAccessDataKey<DATA_PK> createVascBackendAccessDataKey() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<VascBackendListFeature> getSupportedFeatures() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getSupportedRowActions() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeRowAction(VascBackendListRequest request,List<DATA_PK> recordPKs, String actionName) throws VascBackendException {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public VascBackendListResult<DATA_RECORD> execute(VascBackendListRequest state) throws VascBackendException {
|
||||
return new DefaultVascBackendListResult<DATA_RECORD>(executeList(state),fetchTotalExecuteSize(state));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private List<DATA_OBJECT> executeList(VascBackendState state) throws VascBackendException {
|
||||
private List<DATA_RECORD> executeList(VascBackendListRequest state) throws VascBackendException {
|
||||
|
||||
// Copy parameters
|
||||
for (String key:state.getDataParameterKeys()) {
|
||||
Object value = state.getDataParameter(key);
|
||||
query.setQueryParameter(key, value);
|
||||
if (queryTotal!=null) {
|
||||
queryTotal.setQueryParameter(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Copy parameters
|
||||
for (String key:state.getDataParameterKeys()) {
|
||||
Object value = state.getDataParameter(key);
|
||||
//System.out.println("Set para pame: "+key+" value: "+value);
|
||||
query.setQueryParameter(key, value);
|
||||
if (queryTotal!=null) {
|
||||
queryTotal.setQueryParameter(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
EntityManager em = getEntityManager();
|
||||
try {
|
||||
Query q = em.createQuery(query.toPreparedSQL(query));
|
||||
|
|
@ -109,11 +131,11 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
q.setFirstResult(state.getPageIndex()*state.getPageSize());
|
||||
q.setMaxResults(state.getPageSize());
|
||||
}
|
||||
if (emTransaction) {
|
||||
if (hasTransaction()) {
|
||||
em.getTransaction().begin();
|
||||
}
|
||||
List<DATA_OBJECT> data = q.getResultList();
|
||||
if (emTransaction) {
|
||||
List<DATA_RECORD> data = q.getResultList();
|
||||
if (hasTransaction()) {
|
||||
em.getTransaction().commit();
|
||||
}
|
||||
return data;
|
||||
|
|
@ -123,24 +145,6 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see net.forwardfire.vasc.backend.VascBackend#provideVascEntryFieldValue()
|
||||
*/
|
||||
@Override
|
||||
public VascEntryFieldValue provideVascEntryFieldValue() {
|
||||
VascEntryFieldValue result = new BeanVascEntryFieldValue();
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see net.forwardfire.vasc.backend.VascBackend#provideVascEntryRecordCreator()
|
||||
*/
|
||||
@Override
|
||||
public VascEntryRecordCreator provideVascEntryRecordCreator() {
|
||||
VascEntryRecordCreator result = new BeanVascEntryRecordCreator(resultClass);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the query
|
||||
|
|
@ -155,53 +159,24 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
public void setQuery(net.forwardfire.vasc.xpql.query.Query query) {
|
||||
this.query = query;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the queryTotal
|
||||
*/
|
||||
public net.forwardfire.vasc.xpql.query.Query getQueryTotal() {
|
||||
return queryTotal;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param queryTotal the queryTotal to set
|
||||
*/
|
||||
public void setQueryTotal(net.forwardfire.vasc.xpql.query.Query queryTotal) {
|
||||
this.queryTotal = queryTotal;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the resultClass
|
||||
* @see net.forwardfire.vasc.backend.crud.VascBackendList#isPageable()
|
||||
*/
|
||||
public Class<?> getResultClass() {
|
||||
return resultClass;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param resultClass the resultClass to set
|
||||
*/
|
||||
public void setResultClass(Class<?> resultClass) {
|
||||
this.resultClass = resultClass;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the entityManagerProvider
|
||||
*/
|
||||
public EntityManagerProvider getEntityManagerProvider() {
|
||||
return entityManagerProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param entityManagerProvider the entityManagerProvider to set
|
||||
*/
|
||||
public void setEntityManagerProvider(EntityManagerProvider entityManagerProvider) {
|
||||
this.entityManagerProvider = entityManagerProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see net.forwardfire.vasc.backend.AbstractVascBackend#isPageable()
|
||||
*/
|
||||
@Override
|
||||
public boolean isPageable() {
|
||||
if (queryTotal==null) {
|
||||
return false;
|
||||
|
|
@ -209,21 +184,21 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
return true;
|
||||
}
|
||||
|
||||
private long fetchTotalExecuteSize(VascBackendState state) {
|
||||
private long fetchTotalExecuteSize(VascBackendListRequest state) {
|
||||
EntityManager em = getEntityManager();
|
||||
try {
|
||||
Query q = em.createQuery(queryTotal.toPreparedSQL(queryTotal));
|
||||
List<QueryParameterValue> values = queryTotal.getOrderQueryParameterValues();
|
||||
int i = 1;
|
||||
for (QueryParameterValue value:values) {
|
||||
q.setParameter(i,value.getValue());
|
||||
q.setParameter(i,value.getValue());
|
||||
i++;
|
||||
}
|
||||
if (emTransaction) {
|
||||
if (hasTransaction()) {
|
||||
em.getTransaction().begin();
|
||||
}
|
||||
Long resultTotal = (Long)q.getSingleResult();
|
||||
if (emTransaction) {
|
||||
if (hasTransaction()) {
|
||||
em.getTransaction().commit();
|
||||
}
|
||||
return resultTotal;
|
||||
|
|
@ -234,25 +209,23 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see net.forwardfire.vasc.core.AbstractVascBackend#doRecordMoveDownById(VascBackendState state,java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
public long doRecordMoveDownById(VascBackendState state,Object primaryId) throws VascBackendException {
|
||||
public long doRecordMoveDownById(Object primaryId) throws VascBackendException {
|
||||
long result = 0l;
|
||||
if (queryMoveDown!=null) {
|
||||
EntityManager em = getEntityManager();
|
||||
try {
|
||||
if (emTransaction) {
|
||||
if (hasTransaction()) {
|
||||
em.getTransaction().begin();
|
||||
}
|
||||
|
||||
// Copy parameters
|
||||
for (String key:state.getDataParameterKeys()) {
|
||||
Object value = state.getDataParameter(key);
|
||||
queryMoveDown.setQueryParameter(key, value);
|
||||
}
|
||||
// for (String key:state.getDataParameterKeys()) {
|
||||
// Object value = state.getDataParameter(key);
|
||||
// queryMoveDown.setQueryParameter(key, value);
|
||||
// }
|
||||
|
||||
// set id
|
||||
queryMoveDown.setQueryParameter("id", primaryId);
|
||||
|
|
@ -268,10 +241,10 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
result+=q.executeUpdate();
|
||||
|
||||
// Copy parameters
|
||||
for (String key:state.getDataParameterKeys()) {
|
||||
Object value = state.getDataParameter(key);
|
||||
queryMoveDownUp.setQueryParameter(key, value);
|
||||
}
|
||||
// for (String key:state.getDataParameterKeys()) {
|
||||
// Object value = state.getDataParameter(key);
|
||||
// queryMoveDownUp.setQueryParameter(key, value);
|
||||
// }
|
||||
|
||||
// set id
|
||||
queryMoveDownUp.setQueryParameter("id", primaryId);
|
||||
|
|
@ -286,7 +259,7 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
}
|
||||
result+=q.executeUpdate();
|
||||
|
||||
if (emTransaction) {
|
||||
if (hasTransaction()) {
|
||||
em.getTransaction().commit();
|
||||
}
|
||||
} finally {
|
||||
|
|
@ -301,21 +274,20 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
/**
|
||||
* @see net.forwardfire.vasc.core.AbstractVascBackend#doRecordMoveUpById(VascBackendState state,java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
public long doRecordMoveUpById(VascBackendState state,Object primaryId) throws VascBackendException {
|
||||
public long doRecordMoveUpById(Object primaryId) throws VascBackendException {
|
||||
long result = 0l;
|
||||
if (queryMoveUp!=null) {
|
||||
EntityManager em = getEntityManager();
|
||||
try {
|
||||
if (emTransaction) {
|
||||
em.getTransaction().begin();
|
||||
}
|
||||
// if (emTransaction) {
|
||||
// em.getTransaction().begin();
|
||||
// }
|
||||
|
||||
// Copy parameters
|
||||
for (String key:state.getDataParameterKeys()) {
|
||||
Object value = state.getDataParameter(key);
|
||||
queryMoveUp.setQueryParameter(key, value);
|
||||
}
|
||||
// for (String key:state.getDataParameterKeys()) {
|
||||
// Object value = state.getDataParameter(key);
|
||||
// queryMoveUp.setQueryParameter(key, value);
|
||||
// }
|
||||
|
||||
// set id
|
||||
queryMoveUp.setQueryParameter("id", primaryId);
|
||||
|
|
@ -331,10 +303,10 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
result+=q.executeUpdate();
|
||||
|
||||
// Copy parameters
|
||||
for (String key:state.getDataParameterKeys()) {
|
||||
Object value = state.getDataParameter(key);
|
||||
queryMoveUpDown.setQueryParameter(key, value);
|
||||
}
|
||||
// for (String key:state.getDataParameterKeys()) {
|
||||
// Object value = state.getDataParameter(key);
|
||||
// queryMoveUpDown.setQueryParameter(key, value);
|
||||
// }
|
||||
|
||||
// set id
|
||||
queryMoveUpDown.setQueryParameter("id", primaryId);
|
||||
|
|
@ -349,9 +321,9 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
}
|
||||
result+=q.executeUpdate();
|
||||
|
||||
if (emTransaction) {
|
||||
em.getTransaction().commit();
|
||||
}
|
||||
// if (emTransaction) {
|
||||
// em.getTransaction().commit();
|
||||
// }
|
||||
} finally {
|
||||
if (em!=null) {
|
||||
//em.close();
|
||||
|
|
@ -360,11 +332,21 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see net.forwardfire.vasc.backend.crud.VascBackendList#isSearchable()
|
||||
*/
|
||||
public boolean isSearchable() {
|
||||
if (query.getQueryParameterValue("text_search")!=null) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see net.forwardfire.vasc.backend.AbstractVascBackend#isRecordMoveable()
|
||||
* @see net.forwardfire.vasc.backend.crud.AbstractVascBackendCrud#isRecordMoveable()
|
||||
*/
|
||||
@Override
|
||||
public boolean isRecordMoveable() {
|
||||
return queryMoveUp!=null & queryMoveDown!=null;
|
||||
}
|
||||
|
|
@ -424,16 +406,4 @@ public class XpqlPersistanceVascBackend<DATA_OBJECT extends Serializable> extend
|
|||
public void setQueryMoveDownUp(net.forwardfire.vasc.xpql.query.Query queryMoveDownUp) {
|
||||
this.queryMoveDownUp = queryMoveDownUp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see net.forwardfire.vasc.backend.VascBackend#isSearchable()
|
||||
*/
|
||||
@Override
|
||||
public boolean isSearchable() {
|
||||
if (query.getQueryParameterValue("text_search")==null) {
|
||||
return false;
|
||||
}
|
||||
//return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue