[DS 3741] fixed checkstyle in DAOImpl classes

This commit is contained in:
Raf Ponsaerts
2018-05-25 14:59:11 +02:00
parent db0a898c42
commit a33f5de0df
36 changed files with 989 additions and 1093 deletions

View File

@@ -7,19 +7,16 @@
*/
package org.dspace.app.requestitem.dao.impl;
import org.dspace.app.requestitem.RequestItem;
import org.dspace.app.requestitem.RequestItem_;
import org.dspace.app.requestitem.dao.RequestItemDAO;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.xmlworkflow.storedcomponents.InProgressUser;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import java.sql.SQLException;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import org.dspace.app.requestitem.RequestItem;
import org.dspace.app.requestitem.RequestItem_;
import org.dspace.app.requestitem.dao.RequestItemDAO;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
/**
* Hibernate implementation of the Database Access Object interface class for the RequestItem object.
@@ -28,10 +25,8 @@ import java.sql.SQLException;
*
* @author kevinvandevelde at atmire.com
*/
public class RequestItemDAOImpl extends AbstractHibernateDAO<RequestItem> implements RequestItemDAO
{
protected RequestItemDAOImpl()
{
public class RequestItemDAOImpl extends AbstractHibernateDAO<RequestItem> implements RequestItemDAO {
protected RequestItemDAOImpl() {
super();
}

View File

@@ -7,23 +7,21 @@
*/
package org.dspace.authorize.dao.impl;
import org.dspace.authorize.ResourcePolicy;
import org.dspace.authorize.ResourcePolicy_;
import org.dspace.authorize.dao.ResourcePolicyDAO;
import org.dspace.content.Community;
import org.dspace.content.DSpaceObject;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.Group;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import java.sql.SQLException;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
import org.dspace.authorize.ResourcePolicy;
import org.dspace.authorize.ResourcePolicy_;
import org.dspace.authorize.dao.ResourcePolicyDAO;
import org.dspace.content.DSpaceObject;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.Group;
/**
* Hibernate implementation of the Database Access Object interface class for the ResourcePolicy object.
@@ -32,11 +30,9 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy> implements ResourcePolicyDAO
{
public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy> implements ResourcePolicyDAO {
protected ResourcePolicyDAOImpl()
{
protected ResourcePolicyDAOImpl() {
super();
}
@@ -51,16 +47,16 @@ public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy>
}
@Override
public List<ResourcePolicy> findByDsoAndType(Context context, DSpaceObject dso, String type) throws SQLException
{
public List<ResourcePolicy> findByDsoAndType(Context context, DSpaceObject dso, String type) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ResourcePolicy.class);
Root<ResourcePolicy> resourcePolicyRoot = criteriaQuery.from(ResourcePolicy.class);
criteriaQuery.select(resourcePolicyRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.dSpaceObject), dso),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.rptype), type)
)
);
criteriaQuery
.where(criteriaBuilder.and(criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.dSpaceObject), dso),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.rptype), type)
)
);
return list(context, criteriaQuery, false, ResourcePolicy.class, -1, -1);
}
@@ -75,65 +71,74 @@ public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy>
}
@Override
public List<ResourcePolicy> findByDSoAndAction(Context context, DSpaceObject dso, int actionId) throws SQLException
{
public List<ResourcePolicy> findByDSoAndAction(Context context, DSpaceObject dso, int actionId)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ResourcePolicy.class);
Root<ResourcePolicy> resourcePolicyRoot = criteriaQuery.from(ResourcePolicy.class);
criteriaQuery.select(resourcePolicyRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.dSpaceObject), dso),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.actionId), actionId)
)
);
criteriaQuery
.where(criteriaBuilder.and(criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.dSpaceObject), dso),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.actionId), actionId)
)
);
return list(context, criteriaQuery, false, ResourcePolicy.class, -1, -1);
}
@Override
public List<ResourcePolicy> findByTypeGroupAction(Context context, DSpaceObject dso, Group group, int action) throws SQLException {
public List<ResourcePolicy> findByTypeGroupAction(Context context, DSpaceObject dso, Group group, int action)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ResourcePolicy.class);
Root<ResourcePolicy> resourcePolicyRoot = criteriaQuery.from(ResourcePolicy.class);
criteriaQuery.select(resourcePolicyRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.dSpaceObject), dso),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.epersonGroup), group),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.actionId), action)
)
);
criteriaQuery
.where(criteriaBuilder.and(criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.dSpaceObject), dso),
criteriaBuilder
.equal(resourcePolicyRoot.get(ResourcePolicy_.epersonGroup), group),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.actionId), action)
)
);
return list(context, criteriaQuery, false, ResourcePolicy.class, 1, -1);
}
@Override
public List<ResourcePolicy> findByTypeGroupActionExceptId(Context context, DSpaceObject dso, Group group, int action, int notPolicyID) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ResourcePolicy.class);
Root<ResourcePolicy> resourcePolicyRoot = criteriaQuery.from(ResourcePolicy.class);
criteriaQuery.select(resourcePolicyRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.dSpaceObject), dso),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.epersonGroup), group),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.actionId), action),
criteriaBuilder.notEqual(resourcePolicyRoot.get(ResourcePolicy_.id), notPolicyID)
)
);
return list(context, criteriaQuery, false, ResourcePolicy.class, 1, -1);
}
public List<ResourcePolicy> findByEPersonGroupTypeIdAction(Context context, EPerson e, List<Group> groups, int action, int type_id) throws SQLException
{
//TODO Make sure you double check this
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ResourcePolicy.class);
Root<ResourcePolicy> resourcePolicyRoot = criteriaQuery.from(ResourcePolicy.class);
criteriaQuery.select(resourcePolicyRoot);
criteriaQuery.where(criteriaBuilder.and( criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.resourceTypeId), type_id),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.actionId), action),
criteriaBuilder.or( criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.eperson), e),
criteriaBuilder.in(resourcePolicyRoot.get(ResourcePolicy_.epersonGroup).in(groups)))));
return list(context, criteriaQuery, false, ResourcePolicy.class, 1, -1);
}
@Override
public void deleteByDso(Context context, DSpaceObject dso) throws SQLException
{
public List<ResourcePolicy> findByTypeGroupActionExceptId(Context context, DSpaceObject dso, Group group,
int action, int notPolicyID) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ResourcePolicy.class);
Root<ResourcePolicy> resourcePolicyRoot = criteriaQuery.from(ResourcePolicy.class);
criteriaQuery.select(resourcePolicyRoot);
criteriaQuery
.where(criteriaBuilder.and(criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.dSpaceObject), dso),
criteriaBuilder
.equal(resourcePolicyRoot.get(ResourcePolicy_.epersonGroup), group),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.actionId), action),
criteriaBuilder.notEqual(resourcePolicyRoot.get(ResourcePolicy_.id), notPolicyID)
)
);
return list(context, criteriaQuery, false, ResourcePolicy.class, 1, -1);
}
public List<ResourcePolicy> findByEPersonGroupTypeIdAction(Context context, EPerson e, List<Group> groups,
int action, int type_id) throws SQLException {
//TODO Make sure you double check this
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ResourcePolicy.class);
Root<ResourcePolicy> resourcePolicyRoot = criteriaQuery.from(ResourcePolicy.class);
criteriaQuery.select(resourcePolicyRoot);
criteriaQuery.where(
criteriaBuilder.and(criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.resourceTypeId), type_id),
criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.actionId), action),
criteriaBuilder
.or(criteriaBuilder.equal(resourcePolicyRoot.get(ResourcePolicy_.eperson), e),
criteriaBuilder
.in(resourcePolicyRoot.get(ResourcePolicy_.epersonGroup).in(groups)))));
return list(context, criteriaQuery, false, ResourcePolicy.class, 1, -1);
}
@Override
public void deleteByDso(Context context, DSpaceObject dso) throws SQLException {
String queryString = "delete from ResourcePolicy where dSpaceObject= :dSpaceObject";
Query query = createQuery(context, queryString);
query.setParameter("dSpaceObject", dso);

View File

@@ -9,15 +9,15 @@ package org.dspace.checker.dao.impl;
import java.sql.SQLException;
import java.util.Date;
import javax.persistence.Query;
import javax.persistence.TemporalType;
import org.dspace.checker.ChecksumHistory;
import org.dspace.checker.ChecksumResultCode;
import org.dspace.checker.dao.ChecksumHistoryDAO;
import org.dspace.content.Bitstream;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import javax.persistence.Query;
import javax.persistence.TemporalType;
import org.dspace.core.Context;
/**
* <p>
@@ -25,25 +25,25 @@ import javax.persistence.TemporalType;
* update,insert and delete database operations should go through this class for
* checksum history operations.
* </p>
*
*
* @author Jim Downing
* @author Grace Carpenter
* @author Nathan Sarr
* @author kevinvandevelde at atmire.com
*
*
*
*
*/
public class ChecksumHistoryDAOImpl extends AbstractHibernateDAO<ChecksumHistory> implements ChecksumHistoryDAO
{
public class ChecksumHistoryDAOImpl extends AbstractHibernateDAO<ChecksumHistory> implements ChecksumHistoryDAO {
protected ChecksumHistoryDAOImpl()
{
protected ChecksumHistoryDAOImpl() {
super();
}
@Override
public int deleteByDateAndCode(Context context, Date retentionDate, ChecksumResultCode resultCode) throws SQLException {
String hql = "delete from ChecksumHistory where processEndDate < :processEndDate AND checksumResult.resultCode=:resultCode";
public int deleteByDateAndCode(Context context, Date retentionDate, ChecksumResultCode resultCode)
throws SQLException {
String hql = "delete from ChecksumHistory where processEndDate < :processEndDate AND checksumResult" +
".resultCode=:resultCode";
Query query = createQuery(context, hql);
query.setParameter("processEndDate", retentionDate, TemporalType.TIMESTAMP);
query.setParameter("resultCode", resultCode);

View File

@@ -7,20 +7,17 @@
*/
package org.dspace.checker.dao.impl;
import java.sql.SQLException;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.dspace.checker.ChecksumResult;
import org.dspace.checker.ChecksumResultCode;
import org.dspace.checker.ChecksumResult_;
import org.dspace.checker.dao.ChecksumResultDAO;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.handle.Handle;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import org.dspace.core.Context;
/**
* Hibernate implementation of the Database Access Object interface class for the ChecksumResult object.
@@ -29,11 +26,9 @@ import java.sql.SQLException;
*
* @author kevinvandevelde at atmire.com
*/
public class ChecksumResultDAOImpl extends AbstractHibernateDAO<ChecksumResult> implements ChecksumResultDAO
{
public class ChecksumResultDAOImpl extends AbstractHibernateDAO<ChecksumResult> implements ChecksumResultDAO {
protected ChecksumResultDAOImpl()
{
protected ChecksumResultDAOImpl() {
super();
}

View File

@@ -7,6 +7,17 @@
*/
package org.dspace.checker.dao.impl;
import java.sql.SQLException;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.Subquery;
import org.dspace.checker.ChecksumHistory;
import org.dspace.checker.ChecksumHistory_;
import org.dspace.checker.ChecksumResultCode;
@@ -14,26 +25,8 @@ import org.dspace.checker.MostRecentChecksum;
import org.dspace.checker.MostRecentChecksum_;
import org.dspace.checker.dao.MostRecentChecksumDAO;
import org.dspace.content.Bitstream;
import org.dspace.content.BitstreamFormat;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.eperson.Subscription;
import org.hibernate.Criteria;
import javax.persistence.Query;
import org.hibernate.criterion.*;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.Subquery;
import java.sql.SQLException;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
import org.dspace.core.Context;
/**
* Hibernate implementation of the Database Access Object interface class for the MostRecentChecksum object.
@@ -42,16 +35,16 @@ import java.util.UUID;
*
* @author kevinvandevelde at atmire.com
*/
public class MostRecentChecksumDAOImpl extends AbstractHibernateDAO<MostRecentChecksum> implements MostRecentChecksumDAO
{
protected MostRecentChecksumDAOImpl()
{
public class MostRecentChecksumDAOImpl extends AbstractHibernateDAO<MostRecentChecksum>
implements MostRecentChecksumDAO {
protected MostRecentChecksumDAOImpl() {
super();
}
@Override
public List<MostRecentChecksum> findByNotProcessedInDateRange(Context context, Date startDate, Date endDate) throws SQLException {
public List<MostRecentChecksum> findByNotProcessedInDateRange(Context context, Date startDate, Date endDate)
throws SQLException {
// + "most_recent_checksum.last_process_start_date, most_recent_checksum.last_process_end_date, "
// + "most_recent_checksum.expected_checksum, most_recent_checksum.current_checksum, "
// + "result_description "
@@ -66,11 +59,13 @@ public class MostRecentChecksumDAOImpl extends AbstractHibernateDAO<MostRecentCh
CriteriaQuery<MostRecentChecksum> criteriaQuery = getCriteriaQuery(criteriaBuilder, MostRecentChecksum.class);
Root<MostRecentChecksum> mostRecentChecksumRoot = criteriaQuery.from(MostRecentChecksum.class);
criteriaQuery.select(mostRecentChecksumRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(mostRecentChecksumRoot.get(MostRecentChecksum_.toBeProcessed), false),
criteriaBuilder.lessThanOrEqualTo(mostRecentChecksumRoot.<Date>get(MostRecentChecksum_.processStartDate), startDate),
criteriaBuilder.greaterThan(mostRecentChecksumRoot.<Date>get(MostRecentChecksum_.processStartDate), endDate)
)
);
criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.equal(mostRecentChecksumRoot.get(MostRecentChecksum_.toBeProcessed), false),
criteriaBuilder
.lessThanOrEqualTo(mostRecentChecksumRoot.<Date>get(MostRecentChecksum_.processStartDate), startDate),
criteriaBuilder.greaterThan(mostRecentChecksumRoot.<Date>get(MostRecentChecksum_.processStartDate), endDate)
)
);
List<Order> orderList = new LinkedList<>();
orderList.add(criteriaBuilder.asc(mostRecentChecksumRoot.get(MostRecentChecksum_.bitstream)));
criteriaQuery.orderBy(orderList);
@@ -84,13 +79,15 @@ public class MostRecentChecksumDAOImpl extends AbstractHibernateDAO<MostRecentCh
CriteriaQuery<MostRecentChecksum> criteriaQuery = getCriteriaQuery(criteriaBuilder, MostRecentChecksum.class);
Root<MostRecentChecksum> mostRecentChecksumRoot = criteriaQuery.from(MostRecentChecksum.class);
criteriaQuery.select(mostRecentChecksumRoot);
criteriaQuery.where(criteriaBuilder.equal(mostRecentChecksumRoot.get(MostRecentChecksum_.bitstream), bitstream));
criteriaQuery
.where(criteriaBuilder.equal(mostRecentChecksumRoot.get(MostRecentChecksum_.bitstream), bitstream));
return singleResult(context, criteriaQuery);
}
@Override
public List<MostRecentChecksum> findByResultTypeInDateRange(Context context, Date startDate, Date endDate, ChecksumResultCode resultCode) throws SQLException {
public List<MostRecentChecksum> findByResultTypeInDateRange(Context context, Date startDate, Date endDate,
ChecksumResultCode resultCode) throws SQLException {
// "select bitstream_id, last_process_start_date, last_process_end_date, "
// + "expected_checksum, current_checksum, result_description "
// + "from most_recent_checksum, checksum_results "
@@ -103,11 +100,12 @@ public class MostRecentChecksumDAOImpl extends AbstractHibernateDAO<MostRecentCh
CriteriaQuery<MostRecentChecksum> criteriaQuery = getCriteriaQuery(criteriaBuilder, MostRecentChecksum.class);
Root<MostRecentChecksum> mostRecentChecksumRoot = criteriaQuery.from(MostRecentChecksum.class);
criteriaQuery.select(mostRecentChecksumRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(mostRecentChecksumRoot.get("checksumResult.resultCode"), resultCode),
criteriaBuilder.lessThanOrEqualTo(mostRecentChecksumRoot.<Date>get("processStartDate"), startDate),
criteriaBuilder.greaterThan(mostRecentChecksumRoot.<Date>get("processStartDate"), endDate)
)
);
criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.equal(mostRecentChecksumRoot.get("checksumResult.resultCode"), resultCode),
criteriaBuilder.lessThanOrEqualTo(mostRecentChecksumRoot.<Date>get("processStartDate"), startDate),
criteriaBuilder.greaterThan(mostRecentChecksumRoot.<Date>get("processStartDate"), endDate)
)
);
List<Order> orderList = new LinkedList<>();
orderList.add(criteriaBuilder.asc(mostRecentChecksumRoot.get(MostRecentChecksum_.bitstream)));
criteriaQuery.orderBy(orderList);
@@ -116,8 +114,7 @@ public class MostRecentChecksumDAOImpl extends AbstractHibernateDAO<MostRecentCh
}
@Override
public void deleteByBitstream(Context context, Bitstream bitstream) throws SQLException
{
public void deleteByBitstream(Context context, Bitstream bitstream) throws SQLException {
String hql = "delete from MostRecentChecksum WHERE bitstream=:bitstream";
Query query = createQuery(context, hql);
query.setParameter("bitstream", bitstream);
@@ -132,7 +129,6 @@ public class MostRecentChecksumDAOImpl extends AbstractHibernateDAO<MostRecentCh
// + "bitstream_id " + "ASC LIMIT 1";
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery<MostRecentChecksum> criteriaQuery = getCriteriaQuery(criteriaBuilder, MostRecentChecksum.class);
Root<MostRecentChecksum> mostRecentChecksumRoot = criteriaQuery.from(MostRecentChecksum.class);
@@ -159,10 +155,11 @@ public class MostRecentChecksumDAOImpl extends AbstractHibernateDAO<MostRecentCh
CriteriaQuery<MostRecentChecksum> criteriaQuery = getCriteriaQuery(criteriaBuilder, MostRecentChecksum.class);
Root<MostRecentChecksum> mostRecentChecksumRoot = criteriaQuery.from(MostRecentChecksum.class);
criteriaQuery.select(mostRecentChecksumRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(mostRecentChecksumRoot.get(MostRecentChecksum_.toBeProcessed), true),
criteriaBuilder.lessThan(mostRecentChecksumRoot.get(MostRecentChecksum_.processStartDate), lessThanDate)
)
);
criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.equal(mostRecentChecksumRoot.get(MostRecentChecksum_.toBeProcessed), true),
criteriaBuilder.lessThan(mostRecentChecksumRoot.get(MostRecentChecksum_.processStartDate), lessThanDate)
)
);
List<Order> orderList = new LinkedList<>();
orderList.add(criteriaBuilder.asc(mostRecentChecksumRoot.get(MostRecentChecksum_.processEndDate)));
@@ -184,7 +181,7 @@ public class MostRecentChecksumDAOImpl extends AbstractHibernateDAO<MostRecentCh
subQuery.select(historyRoot.get(ChecksumHistory_.bitstream));
criteriaQuery.where(
criteriaBuilder.not(checksumRoot.get(MostRecentChecksum_.bitstream).in(subQuery)));
criteriaBuilder.not(checksumRoot.get(MostRecentChecksum_.bitstream).in(subQuery)));
return list(context, criteriaQuery, false, MostRecentChecksum.class, -1, -1);
}

View File

@@ -7,18 +7,25 @@
*/
package org.dspace.content.dao.impl;
import org.dspace.content.*;
import org.dspace.content.Collection;
import org.dspace.content.dao.BitstreamDAO;
import org.dspace.core.AbstractHibernateDSODAO;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.*;
import org.dspace.content.Bitstream;
import org.dspace.content.Bitstream_;
import org.dspace.content.Collection;
import org.dspace.content.Community;
import org.dspace.content.Item;
import org.dspace.content.dao.BitstreamDAO;
import org.dspace.core.AbstractHibernateDSODAO;
import org.dspace.core.Constants;
import org.dspace.core.Context;
/**
* Hibernate implementation of the Database Access Object interface class for the Bitstream object.
@@ -27,11 +34,9 @@ import java.util.*;
*
* @author kevinvandevelde at atmire.com
*/
public class BitstreamDAOImpl extends AbstractHibernateDSODAO<Bitstream> implements BitstreamDAO
{
public class BitstreamDAOImpl extends AbstractHibernateDSODAO<Bitstream> implements BitstreamDAO {
protected BitstreamDAOImpl()
{
protected BitstreamDAOImpl() {
super();
}
@@ -52,10 +57,11 @@ public class BitstreamDAOImpl extends AbstractHibernateDSODAO<Bitstream> impleme
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, Bitstream.class);
Root<Bitstream> bitstreamRoot = criteriaQuery.from(Bitstream.class);
criteriaQuery.select(bitstreamRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(bitstreamRoot.get(Bitstream_.internalId), bitstream.getInternalId()),
criteriaBuilder.equal(bitstreamRoot.get(Bitstream_.id), bitstream.getID())
)
);
criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.equal(bitstreamRoot.get(Bitstream_.internalId), bitstream.getInternalId()),
criteriaBuilder.equal(bitstreamRoot.get(Bitstream_.id), bitstream.getID())
)
);
return list(context, criteriaQuery, false, Bitstream.class, -1, -1);
}
@@ -71,18 +77,20 @@ public class BitstreamDAOImpl extends AbstractHibernateDSODAO<Bitstream> impleme
// + "where not exists( select 'x' from most_recent_checksum "
// + "where most_recent_checksum.bitstream_id = bitstream.bitstream_id )"
Query query = createQuery(context, "select b from Bitstream b where b not in (select c.bitstream from MostRecentChecksum c)");
Query query = createQuery(context,
"select b from Bitstream b where b not in (select c.bitstream from " +
"MostRecentChecksum c)");
return query.getResultList();
}
@Override
public Iterator<Bitstream> findByCommunity(Context context, Community community) throws SQLException {
Query query = createQuery(context, "select b from Bitstream b " +
"join b.bundles bitBundles " +
"join bitBundles.items item " +
"join item.collections itemColl " +
"join itemColl.communities community " +
"WHERE :community IN community");
"join b.bundles bitBundles " +
"join bitBundles.items item " +
"join item.collections itemColl " +
"join itemColl.communities community " +
"WHERE :community IN community");
query.setParameter("community", community);
@@ -92,10 +100,10 @@ public class BitstreamDAOImpl extends AbstractHibernateDSODAO<Bitstream> impleme
@Override
public Iterator<Bitstream> findByCollection(Context context, Collection collection) throws SQLException {
Query query = createQuery(context, "select b from Bitstream b " +
"join b.bundles bitBundles " +
"join bitBundles.items item " +
"join item.collections c " +
"WHERE :collection IN c");
"join b.bundles bitBundles " +
"join bitBundles.items item " +
"join item.collections c " +
"WHERE :collection IN c");
query.setParameter("collection", collection);
@@ -105,9 +113,9 @@ public class BitstreamDAOImpl extends AbstractHibernateDSODAO<Bitstream> impleme
@Override
public Iterator<Bitstream> findByItem(Context context, Item item) throws SQLException {
Query query = createQuery(context, "select b from Bitstream b " +
"join b.bundles bitBundles " +
"join bitBundles.items item " +
"WHERE :item IN item");
"join b.bundles bitBundles " +
"join bitBundles.items item " +
"WHERE :item IN item");
query.setParameter("item", item);
@@ -145,19 +153,21 @@ public class BitstreamDAOImpl extends AbstractHibernateDSODAO<Bitstream> impleme
@Override
public int countWithNoPolicy(Context context) throws SQLException {
Query query = createQuery(context,"SELECT count(bit.id) from Bitstream bit where bit.deleted<>true and bit.id not in" +
" (select res.dSpaceObject from ResourcePolicy res where res.resourceTypeId = :typeId )" );
Query query = createQuery(context,
"SELECT count(bit.id) from Bitstream bit where bit.deleted<>true and bit.id not in" +
" (select res.dSpaceObject from ResourcePolicy res where res.resourceTypeId = " +
":typeId )");
query.setParameter("typeId", Constants.BITSTREAM);
return count(query);
}
@Override
public List<Bitstream> getNotReferencedBitstreams(Context context) throws SQLException {
return list(createQuery(context,"select bit from Bitstream bit where bit.deleted != true" +
" and bit.id not in (select bit2.id from Bundle bun join bun.bitstreams bit2)" +
" and bit.id not in (select com.logo.id from Community com)" +
" and bit.id not in (select col.logo.id from Collection col)" +
" and bit.id not in (select bun.primaryBitstream.id from Bundle bun)"));
return list(createQuery(context, "select bit from Bitstream bit where bit.deleted != true" +
" and bit.id not in (select bit2.id from Bundle bun join bun.bitstreams bit2)" +
" and bit.id not in (select com.logo.id from Community com)" +
" and bit.id not in (select col.logo.id from Collection col)" +
" and bit.id not in (select bun.primaryBitstream.id from Bundle bun)"));
}
@Override

View File

@@ -7,23 +7,19 @@
*/
package org.dspace.content.dao.impl;
import org.dspace.content.BitstreamFormat;
import org.dspace.content.BitstreamFormat_;
import org.dspace.content.dao.BitstreamFormatDAO;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.harvest.HarvestedItem;
import javax.persistence.Query;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.dspace.content.BitstreamFormat;
import org.dspace.content.BitstreamFormat_;
import org.dspace.content.dao.BitstreamFormatDAO;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
/**
* Hibernate implementation of the Database Access Object interface class for the BitstreamFormat object.
@@ -32,11 +28,9 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class BitstreamFormatDAOImpl extends AbstractHibernateDAO<BitstreamFormat> implements BitstreamFormatDAO
{
public class BitstreamFormatDAOImpl extends AbstractHibernateDAO<BitstreamFormat> implements BitstreamFormatDAO {
protected BitstreamFormatDAOImpl()
{
protected BitstreamFormatDAOImpl() {
super();
}
@@ -56,18 +50,19 @@ public class BitstreamFormatDAOImpl extends AbstractHibernateDAO<BitstreamFormat
* @throws SQLException if database error
*/
@Override
public BitstreamFormat findByMIMEType(Context context, String mimeType, boolean includeInternal) throws SQLException
{
public BitstreamFormat findByMIMEType(Context context, String mimeType, boolean includeInternal)
throws SQLException {
// NOTE: Avoid internal formats since e.g. "License" also has
// a MIMEtype of text/plain.
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, BitstreamFormat.class);
Root<BitstreamFormat> bitstreamFormatRoot = criteriaQuery.from(BitstreamFormat.class);
criteriaQuery.select(bitstreamFormatRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(bitstreamFormatRoot.get(BitstreamFormat_.internal), includeInternal),
criteriaBuilder.like(bitstreamFormatRoot.get(BitstreamFormat_.mimetype), mimeType)
)
);
criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.equal(bitstreamFormatRoot.get(BitstreamFormat_.internal), includeInternal),
criteriaBuilder.like(bitstreamFormatRoot.get(BitstreamFormat_.mimetype), mimeType)
)
);
return singleResult(context, criteriaQuery);
}
@@ -85,8 +80,7 @@ public class BitstreamFormatDAOImpl extends AbstractHibernateDAO<BitstreamFormat
*/
@Override
public BitstreamFormat findByShortDescription(Context context,
String desc) throws SQLException
{
String desc) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, BitstreamFormat.class);
Root<BitstreamFormat> bitstreamFormatRoot = criteriaQuery.from(BitstreamFormat.class);
@@ -96,9 +90,12 @@ public class BitstreamFormatDAOImpl extends AbstractHibernateDAO<BitstreamFormat
}
@Override
public int updateRemovedBitstreamFormat(Context context, BitstreamFormat deletedBitstreamFormat, BitstreamFormat newBitstreamFormat) throws SQLException {
public int updateRemovedBitstreamFormat(Context context, BitstreamFormat deletedBitstreamFormat,
BitstreamFormat newBitstreamFormat) throws SQLException {
// Set bitstreams with this format to "unknown"
Query query = createQuery(context, "update Bitstream set bitstreamFormat = :unknown_format where bitstreamFormat = :deleted_format");
Query query = createQuery(context,
"update Bitstream set bitstreamFormat = :unknown_format where bitstreamFormat = " +
":deleted_format");
query.setParameter("unknown_format", newBitstreamFormat);
query.setParameter("deleted_format", deletedBitstreamFormat);
@@ -112,11 +109,14 @@ public class BitstreamFormatDAOImpl extends AbstractHibernateDAO<BitstreamFormat
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, BitstreamFormat.class);
Root<BitstreamFormat> bitstreamFormatRoot = criteriaQuery.from(BitstreamFormat.class);
criteriaQuery.select(bitstreamFormatRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(bitstreamFormatRoot.get(BitstreamFormat_.internal), false),
criteriaBuilder.not(
criteriaBuilder.like(bitstreamFormatRoot.get(BitstreamFormat_.shortDescription), "Unknown"))
)
);
criteriaQuery
.where(criteriaBuilder.and(criteriaBuilder.equal(bitstreamFormatRoot.get(BitstreamFormat_.internal), false),
criteriaBuilder.not(
criteriaBuilder
.like(bitstreamFormatRoot.get(BitstreamFormat_.shortDescription),
"Unknown"))
)
);
List<javax.persistence.criteria.Order> orderList = new LinkedList<>();

View File

@@ -7,32 +7,31 @@
*/
package org.dspace.content.dao.impl;
import org.dspace.authorize.ResourcePolicy;
import org.dspace.authorize.ResourcePolicy_;
import org.dspace.checker.ChecksumResult;
import org.dspace.content.Collection;
import org.dspace.content.Collection_;
import org.dspace.content.Item;
import org.dspace.content.MetadataField;
import org.dspace.content.dao.CollectionDAO;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDSODAO;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.Group;
import org.hibernate.Criteria;
import javax.persistence.Query;
import org.hibernate.criterion.Disjunction;
import org.hibernate.criterion.Restrictions;
import org.hibernate.transform.BasicTransformerAdapter;
import javax.persistence.criteria.*;
import java.sql.SQLException;
import java.util.AbstractMap;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import org.dspace.authorize.ResourcePolicy;
import org.dspace.authorize.ResourcePolicy_;
import org.dspace.content.Collection;
import org.dspace.content.Collection_;
import org.dspace.content.Item;
import org.dspace.content.MetadataField;
import org.dspace.content.dao.CollectionDAO;
import org.dspace.core.AbstractHibernateDSODAO;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.Group;
/**
* Hibernate implementation of the Database Access Object interface class for the Collection object.
@@ -41,10 +40,8 @@ import java.util.Map;
*
* @author kevinvandevelde at atmire.com
*/
public class CollectionDAOImpl extends AbstractHibernateDSODAO<Collection> implements CollectionDAO
{
protected CollectionDAOImpl()
{
public class CollectionDAOImpl extends AbstractHibernateDSODAO<Collection> implements CollectionDAO {
protected CollectionDAOImpl() {
super();
}
@@ -59,24 +56,24 @@ public class CollectionDAOImpl extends AbstractHibernateDSODAO<Collection> imple
* @throws SQLException if database error
*/
@Override
public List<Collection> findAll(Context context, MetadataField order) throws SQLException
{
public List<Collection> findAll(Context context, MetadataField order) throws SQLException {
return findAll(context, order, null, null);
}
@Override
public List<Collection> findAll(Context context, MetadataField order, Integer limit, Integer offset) throws SQLException {
public List<Collection> findAll(Context context, MetadataField order, Integer limit, Integer offset)
throws SQLException {
StringBuilder query = new StringBuilder();
query.append("SELECT ").append(Collection.class.getSimpleName()).append(" FROM Collection as ").append(Collection.class.getSimpleName()).append(" ");
query.append("SELECT ").append(Collection.class.getSimpleName()).append(" FROM Collection as ")
.append(Collection.class.getSimpleName()).append(" ");
addMetadataLeftJoin(query, Collection.class.getSimpleName(), Arrays.asList(order));
addMetadataSortQuery(query, Arrays.asList(order), null);
Query hibernateQuery = createQuery(context, query.toString());
if(offset != null)
{
if (offset != null) {
hibernateQuery.setFirstResult(offset);
}
if(limit != null){
if (limit != null) {
hibernateQuery.setMaxResults(limit);
}
hibernateQuery.setParameter(order.toString(), order.getID());
@@ -100,18 +97,20 @@ public class CollectionDAOImpl extends AbstractHibernateDSODAO<Collection> imple
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, Collection.class);
Root<Collection> collectionRoot = criteriaQuery.from(Collection.class);
criteriaQuery.select(collectionRoot);
criteriaQuery.where(criteriaBuilder.or(criteriaBuilder.equal(collectionRoot.get(Collection_.workflowStep1), group),
criteriaBuilder.equal(collectionRoot.get(Collection_.workflowStep2), group),
criteriaBuilder.equal(collectionRoot.get(Collection_.workflowStep3), group),
criteriaBuilder.equal(collectionRoot.get(Collection_.submitters), group),
criteriaBuilder.equal(collectionRoot.get(Collection_.admins), group)
)
);
criteriaQuery
.where(criteriaBuilder.or(criteriaBuilder.equal(collectionRoot.get(Collection_.workflowStep1), group),
criteriaBuilder.equal(collectionRoot.get(Collection_.workflowStep2), group),
criteriaBuilder.equal(collectionRoot.get(Collection_.workflowStep3), group),
criteriaBuilder.equal(collectionRoot.get(Collection_.submitters), group),
criteriaBuilder.equal(collectionRoot.get(Collection_.admins), group)
)
);
return singleResult(context, criteriaQuery);
}
@Override
public List<Collection> findAuthorized(Context context, EPerson ePerson, List<Integer> actions) throws SQLException {
public List<Collection> findAuthorized(Context context, EPerson ePerson, List<Integer> actions)
throws SQLException {
// TableRowIterator tri = DatabaseManager.query(context,
// "SELECT * FROM collection, resourcepolicy, eperson " +
// "WHERE resourcepolicy.resource_id = collection.collection_id AND " +
@@ -125,51 +124,54 @@ public class CollectionDAOImpl extends AbstractHibernateDSODAO<Collection> imple
Root<Collection> collectionRoot = criteriaQuery.from(Collection.class);
Join<Collection, ResourcePolicy> join = collectionRoot.join("resourcePolicies");
List<Predicate> orPredicates = new LinkedList<Predicate>();
for(Integer action : actions){
for (Integer action : actions) {
orPredicates.add(criteriaBuilder.equal(join.get(ResourcePolicy_.actionId), action));
}
Predicate orPredicate = criteriaBuilder.or(orPredicates.toArray(new Predicate[]{}));
Predicate orPredicate = criteriaBuilder.or(orPredicates.toArray(new Predicate[] {}));
criteriaQuery.select(collectionRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(join.get(ResourcePolicy_.resourceTypeId), Constants.COLLECTION),
criteriaBuilder.equal(join.get(ResourcePolicy_.eperson), ePerson),
orPredicate));
criteriaQuery.where(
criteriaBuilder.and(criteriaBuilder.equal(join.get(ResourcePolicy_.resourceTypeId), Constants.COLLECTION),
criteriaBuilder.equal(join.get(ResourcePolicy_.eperson), ePerson),
orPredicate));
return list(context, criteriaQuery, true, Collection.class, -1, -1);
}
@Override
public List<Collection> findAuthorizedByGroup(Context context, EPerson ePerson, List<Integer> actions) throws SQLException {
// TableRowIterator tri = DatabaseManager.query(context,
// "SELECT \n" +
// " * \n" +
// "FROM \n" +
// " public.eperson, \n" +
// " public.epersongroup2eperson, \n" +
// " public.epersongroup, \n" +
// " public.group2group, \n" +
// " public.resourcepolicy rp_parent, \n" +
// " public.collection\n" +
// "WHERE \n" +
// " epersongroup2eperson.eperson_id = eperson.eperson_id AND\n" +
// " epersongroup.eperson_group_id = epersongroup2eperson.eperson_group_id AND\n" +
// " group2group.child_id = epersongroup.eperson_group_id AND\n" +
// " rp_parent.epersongroup_id = group2group.parent_id AND\n" +
// " collection.collection_id = rp_parent.resource_id AND\n" +
// " eperson.eperson_id = ? AND \n" +
// " (rp_parent.action_id = 3 OR \n" +
// " rp_parent.action_id = 11 \n" +
// " ) AND rp_parent.resource_type_id = 3;", context.getCurrentUser().getID());
public List<Collection> findAuthorizedByGroup(Context context, EPerson ePerson, List<Integer> actions)
throws SQLException {
// TableRowIterator tri = DatabaseManager.query(context,
// "SELECT \n" +
// " * \n" +
// "FROM \n" +
// " public.eperson, \n" +
// " public.epersongroup2eperson, \n" +
// " public.epersongroup, \n" +
// " public.group2group, \n" +
// " public.resourcepolicy rp_parent, \n" +
// " public.collection\n" +
// "WHERE \n" +
// " epersongroup2eperson.eperson_id = eperson.eperson_id AND\n" +
// " epersongroup.eperson_group_id = epersongroup2eperson.eperson_group_id AND\n" +
// " group2group.child_id = epersongroup.eperson_group_id AND\n" +
// " rp_parent.epersongroup_id = group2group.parent_id AND\n" +
// " collection.collection_id = rp_parent.resource_id AND\n" +
// " eperson.eperson_id = ? AND \n" +
// " (rp_parent.action_id = 3 OR \n" +
// " rp_parent.action_id = 11 \n" +
// " ) AND rp_parent.resource_type_id = 3;", context.getCurrentUser().getID());
StringBuilder query = new StringBuilder();
query.append("select c from Collection c join c.resourcePolicies rp join rp.epersonGroup rpGroup WHERE ");
for (int i = 0; i < actions.size(); i++) {
Integer action = actions.get(i);
if(i != 0)
{
if (i != 0) {
query.append(" AND ");
}
query.append("rp.actionId=").append(action);
}
query.append(" AND rp.resourceTypeId=").append(Constants.COLLECTION);
query.append(" AND rp.epersonGroup.id IN (select g.id from Group g where (from EPerson e where e.id = :eperson_id) in elements(epeople))");
query.append(
" AND rp.epersonGroup.id IN (select g.id from Group g where (from EPerson e where e.id = :eperson_id) in " +
"elements(epeople))");
Query persistenceQuery = createQuery(context, query.toString());
persistenceQuery.setParameter("eperson_id", ePerson.getID());
persistenceQuery.setHint("org.hibernate.cacheable", Boolean.TRUE);
@@ -191,13 +193,15 @@ public class CollectionDAOImpl extends AbstractHibernateDSODAO<Collection> imple
@Override
@SuppressWarnings("unchecked")
public List<Map.Entry<Collection, Long>> getCollectionsWithBitstreamSizesTotal(Context context) throws SQLException {
String q = "select col as collection, sum(bit.sizeBytes) as totalBytes from Item i join i.collections col join i.bundles bun join bun.bitstreams bit group by col";
public List<Map.Entry<Collection, Long>> getCollectionsWithBitstreamSizesTotal(Context context)
throws SQLException {
String q = "select col as collection, sum(bit.sizeBytes) as totalBytes from Item i join i.collections col " +
"join i.bundles bun join bun.bitstreams bit group by col";
Query query = createQuery(context, q);
List<Object[]> list = query.getResultList();
List<Map.Entry<Collection, Long>> returnList = new LinkedList<>();
for(Object[] o : list) {
for (Object[] o : list) {
returnList.add(new AbstractMap.SimpleEntry<>((Collection) o[0], (Long) o[1]));
}
return returnList;

View File

@@ -135,7 +135,7 @@ public class CommunityDAOImpl extends AbstractHibernateDSODAO<Community> impleme
for (Integer action : actions) {
orPredicates.add(criteriaBuilder.equal(join.get(ResourcePolicy_.actionId), action));
}
Predicate orPredicate = criteriaBuilder.or(orPredicates.toArray(new Predicate[]{}));
Predicate orPredicate = criteriaBuilder.or(orPredicates.toArray(new Predicate[] {}));
criteriaQuery.select(communityRoot);
criteriaQuery.where(
criteriaBuilder.and(criteriaBuilder.equal(join.get(ResourcePolicy_.resourceTypeId), Constants.COLLECTION),

View File

@@ -7,6 +7,21 @@
*/
package org.dspace.content.dao.impl;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
import javax.persistence.Query;
import javax.persistence.TemporalType;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.Subquery;
import org.apache.log4j.Logger;
import org.dspace.content.Collection;
import org.dspace.content.DSpaceObject;
@@ -16,24 +31,9 @@ import org.dspace.content.MetadataField;
import org.dspace.content.MetadataValue;
import org.dspace.content.MetadataValue_;
import org.dspace.content.dao.ItemDAO;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDSODAO;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import javax.persistence.Query;
import javax.persistence.TemporalType;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.Subquery;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
/**
* Hibernate implementation of the Database Access Object interface class for the Item object.
@@ -42,12 +42,10 @@ import java.util.UUID;
*
* @author kevinvandevelde at atmire.com
*/
public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDAO
{
public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDAO {
private static final Logger log = Logger.getLogger(ItemDAOImpl.class);
protected ItemDAOImpl()
{
protected ItemDAOImpl() {
super();
}
@@ -78,16 +76,14 @@ public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDA
@Override
public Iterator<Item> findAll(Context context, boolean archived,
boolean withdrawn, boolean discoverable, Date lastModified)
throws SQLException
{
boolean withdrawn, boolean discoverable, Date lastModified)
throws SQLException {
StringBuilder queryStr = new StringBuilder();
queryStr.append("SELECT i FROM Item i");
queryStr.append(" WHERE (inArchive = :in_archive OR withdrawn = :withdrawn)");
queryStr.append(" AND discoverable = :discoverable");
if(lastModified != null)
{
if (lastModified != null) {
queryStr.append(" AND last_modified > :last_modified");
}
@@ -95,10 +91,9 @@ public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDA
query.setParameter("in_archive", archived);
query.setParameter("withdrawn", withdrawn);
query.setParameter("discoverable", discoverable);
if(lastModified != null)
{
if (lastModified != null) {
query.setParameter("last_modified", lastModified, TemporalType.TIMESTAMP);
}
}
return iterate(query);
}
@@ -111,7 +106,8 @@ public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDA
}
@Override
public Iterator<Item> findBySubmitter(Context context, EPerson eperson, MetadataField metadataField, int limit) throws SQLException {
public Iterator<Item> findBySubmitter(Context context, EPerson eperson, MetadataField metadataField, int limit)
throws SQLException {
StringBuilder query = new StringBuilder();
query.append("SELECT item FROM Item as item ");
addMetadataLeftJoin(query, Item.class.getSimpleName().toLowerCase(), Collections.singletonList(metadataField));
@@ -129,89 +125,30 @@ public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDA
}
@Override
public Iterator<Item> findByMetadataField(Context context, MetadataField metadataField, String value, boolean inArchive) throws SQLException {
String hqlQueryString = "SELECT item FROM Item as item join item.metadata metadatavalue WHERE item.inArchive=:in_archive AND metadatavalue.metadataField = :metadata_field";
if(value != null)
{
public Iterator<Item> findByMetadataField(Context context, MetadataField metadataField, String value,
boolean inArchive) throws SQLException {
String hqlQueryString = "SELECT item FROM Item as item join item.metadata metadatavalue WHERE item" +
".inArchive=:in_archive AND metadatavalue.metadataField = :metadata_field";
if (value != null) {
hqlQueryString += " AND STR(metadatavalue.value) = :text_value";
}
Query query = createQuery(context, hqlQueryString);
query.setParameter("in_archive", inArchive);
query.setParameter("metadata_field", metadataField);
if(value != null)
{
if (value != null) {
query.setParameter("text_value", value);
}
return iterate(query);
}
enum OP {equals,not_equals,like,not_like,contains,doesnt_contain,exists,doesnt_exist,matches,doesnt_match;}
enum OP { equals, not_equals, like, not_like, contains,
doesnt_contain, exists, doesnt_exist, matches, doesnt_match; }
@Override
public Iterator<Item> findByMetadataQuery(Context context, List<List<MetadataField>> listFieldList, List<String> query_op, List<String> query_val, List<UUID> collectionUuids, String regexClause, int offset, int limit) throws SQLException {
// Criteria criteria = createCriteria(context, Item.class, "item");
// criteria.setFirstResult(offset);
// criteria.setMaxResults(limit);
//
// if (!collectionUuids.isEmpty()){
// DetachedCriteria dcollCriteria = DetachedCriteria.forClass(Collection.class, "coll");
// dcollCriteria.setProjection(Projections.property("coll.id"));
// dcollCriteria.add(Restrictions.eqProperty("coll.id", "item.owningCollection"));
// dcollCriteria.add(Restrictions.in("coll.id", collectionUuids));
// criteria.add(Subqueries.exists(dcollCriteria));
// }
//
// int index = Math.min(listFieldList.size(), Math.min(query_op.size(), query_val.size()));
// StringBuilder sb = new StringBuilder();
//
// for(int i=0; i<index; i++) {
// OP op = OP.valueOf(query_op.get(i));
// if (op == null) {
// log.warn("Skipping Invalid Operator: " + query_op.get(i));
// continue;
// }
//
// if (op == OP.matches || op == OP.doesnt_match) {
// if (regexClause.isEmpty()) {
// log.warn("Skipping Unsupported Regex Operator: " + query_op.get(i));
// continue;
// }
// }
//
// DetachedCriteria subcriteria = DetachedCriteria.forClass(MetadataValue.class,"mv");
// subcriteria.add(Property.forName("mv.dSpaceObject").eqProperty("item.id"));
// subcriteria.setProjection(Projections.property("mv.dSpaceObject"));
//
// if (!listFieldList.get(i).isEmpty()) {
// subcriteria.add(Restrictions.in("metadataField", listFieldList.get(i)));
// }
//
// sb.append(op.name() + " ");
// if (op == OP.equals || op == OP.not_equals){
// subcriteria.add(Property.forName("mv.value").eq(query_val.get(i)));
// sb.append(query_val.get(i));
// } else if (op == OP.like || op == OP.not_like){
// subcriteria.add(Property.forName("mv.value").like(query_val.get(i)));
// sb.append(query_val.get(i));
// } else if (op == OP.contains || op == OP.doesnt_contain){
// subcriteria.add(Property.forName("mv.value").like("%"+query_val.get(i)+"%"));
// sb.append(query_val.get(i));
// } else if (op == OP.matches || op == OP.doesnt_match) {
// subcriteria.add(Restrictions.sqlRestriction(regexClause, query_val.get(i), StandardBasicTypes.STRING));
// sb.append(query_val.get(i));
// }
//
// if (op == OP.exists || op == OP.equals || op == OP.like || op == OP.contains || op == OP.matches) {
// criteria.add(Subqueries.exists(subcriteria));
// } else {
// criteria.add(Subqueries.notExists(subcriteria));
// }
// }
// log.debug(String.format("Running custom query with %d filters", index));
//
// return list(criteria).iterator();
//TODO RAF WRITE
public Iterator<Item> findByMetadataQuery(Context context, List<List<MetadataField>> listFieldList,
List<String> query_op, List<String> query_val, List<UUID> collectionUuids,
String regexClause, int offset, int limit) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, Item.class);
@@ -221,60 +158,72 @@ public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDA
List<Predicate> predicateList = new LinkedList<>();
if(!collectionUuids.isEmpty()){
if (!collectionUuids.isEmpty()) {
predicateList.add(criteriaBuilder.isTrue(itemRoot.get(Item_.owningCollection).in(collectionUuids)));
}
int index = Math.min(listFieldList.size(), Math.min(query_op.size(), query_val.size()));
for(int i = 0; i < index; i++){
for (int i = 0; i < index; i++) {
OP op = OP.valueOf(query_op.get(i));
if (op == null) {
log.warn("Skipping Invalid Operator: " + query_op.get(i));
continue;
}
if (op == null) {
log.warn("Skipping Invalid Operator: " + query_op.get(i));
continue;
}
if (op == OP.matches || op == OP.doesnt_match) {
if (regexClause.isEmpty()) {
log.warn("Skipping Unsupported Regex Operator: " + query_op.get(i));
continue;
}
}
if (op == OP.matches || op == OP.doesnt_match) {
if (regexClause.isEmpty()) {
log.warn("Skipping Unsupported Regex Operator: " + query_op.get(i));
continue;
}
}
Subquery<DSpaceObject> subquery = criteriaQuery.subquery(DSpaceObject.class);
Root<MetadataValue> subqueryRoot = subquery.from(MetadataValue.class);
subquery.select(subqueryRoot.get(MetadataValue_.dSpaceObject));
Root<MetadataValue> subqueryRoot = subquery.from(MetadataValue.class);
subquery.select(subqueryRoot.get(MetadataValue_.dSpaceObject));
List<Predicate> predicateListSubQuery = new LinkedList<>();
predicateListSubQuery.add(criteriaBuilder.equal(subqueryRoot.get(MetadataValue_.dSpaceObject), itemRoot.get(Item_.id)));
predicateListSubQuery
.add(criteriaBuilder.equal(subqueryRoot.get(MetadataValue_.dSpaceObject), itemRoot.get(Item_.id)));
if (!listFieldList.get(i).isEmpty()) {
predicateListSubQuery.add(criteriaBuilder.isTrue(subqueryRoot.get(MetadataValue_.metadataField).in(listFieldList.get(i))));
}
if (op == OP.equals){
predicateListSubQuery.add(criteriaBuilder.equal(subqueryRoot.get(MetadataValue_.value), query_val.get(i)));
} else if (op == OP.like){
predicateListSubQuery.add(criteriaBuilder.like(subqueryRoot.get(MetadataValue_.value), query_val.get(i)));
} else if (op == OP.contains){
predicateListSubQuery.add(criteriaBuilder.like(subqueryRoot.get(MetadataValue_.value), "%"+query_val.get(i)+"%"));
} else if (op == OP.not_equals){
predicateListSubQuery.add(criteriaBuilder.notEqual(subqueryRoot.get(MetadataValue_.value), query_val.get(i)));
} else if (op == OP.not_like){
predicateListSubQuery.add(criteriaBuilder.notLike(subqueryRoot.get(MetadataValue_.value), query_val.get(i)));
} else if (op == OP.doesnt_contain){
predicateListSubQuery.add(criteriaBuilder.notLike(subqueryRoot.get(MetadataValue_.value), "%"+query_val.get(i)+"%"));
predicateListSubQuery.add(
criteriaBuilder.isTrue(subqueryRoot.get(MetadataValue_.metadataField).in(listFieldList.get(i))));
}
subquery.where(predicateListSubQuery.toArray(new Predicate[]{}));
if (op == OP.equals) {
predicateListSubQuery
.add(criteriaBuilder.equal(subqueryRoot.get(MetadataValue_.value), query_val.get(i)));
} else if (op == OP.like) {
predicateListSubQuery
.add(criteriaBuilder.like(subqueryRoot.get(MetadataValue_.value), query_val.get(i)));
} else if (op == OP.contains) {
predicateListSubQuery
.add(criteriaBuilder.like(subqueryRoot.get(MetadataValue_.value), "%" + query_val.get(i) + "%"));
} else if (op == OP.not_equals) {
predicateListSubQuery
.add(criteriaBuilder.notEqual(subqueryRoot.get(MetadataValue_.value), query_val.get(i)));
} else if (op == OP.not_like) {
predicateListSubQuery
.add(criteriaBuilder.notLike(subqueryRoot.get(MetadataValue_.value), query_val.get(i)));
} else if (op == OP.doesnt_contain) {
predicateListSubQuery
.add(criteriaBuilder.notLike(subqueryRoot.get(MetadataValue_.value), "%" + query_val.get(i) + "%"));
}
subquery.where(predicateListSubQuery.toArray(new Predicate[] {}));
predicateList.add(criteriaBuilder.isTrue(itemRoot.get(Item_.id).in(subquery)));
}
criteriaQuery.where(predicateList.toArray(new Predicate[]{}));
criteriaQuery.where(predicateList.toArray(new Predicate[] {}));
return list(context, criteriaQuery, false, Item.class, offset, limit).iterator();
}
@Override
public Iterator<Item> findByAuthorityValue(Context context, MetadataField metadataField, String authority, boolean inArchive) throws SQLException {
Query query = createQuery(context, "SELECT item FROM Item as item join item.metadata metadatavalue WHERE item.inArchive=:in_archive AND metadatavalue.metadataField = :metadata_field AND metadatavalue.authority = :authority");
public Iterator<Item> findByAuthorityValue(Context context, MetadataField metadataField, String authority,
boolean inArchive) throws SQLException {
Query query = createQuery(context,
"SELECT item FROM Item as item join item.metadata metadatavalue WHERE item" +
".inArchive=:in_archive AND metadatavalue.metadataField = :metadata_field AND " +
"metadatavalue.authority = :authority");
query.setParameter("in_archive", inArchive);
query.setParameter("metadata_field", metadataField);
query.setParameter("authority", authority);
@@ -282,16 +231,17 @@ public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDA
}
@Override
public Iterator<Item> findArchivedByCollection(Context context, Collection collection, Integer limit, Integer offset) throws SQLException {
Query query = createQuery(context, "select i from Item i join i.collections c WHERE :collection IN c AND i.inArchive=:in_archive");
public Iterator<Item> findArchivedByCollection(Context context, Collection collection, Integer limit,
Integer offset) throws SQLException {
Query query = createQuery(context,
"select i from Item i join i.collections c WHERE :collection IN c AND i" +
".inArchive=:in_archive");
query.setParameter("collection", collection);
query.setParameter("in_archive", true);
if(offset != null)
{
if (offset != null) {
query.setFirstResult(offset);
}
if(limit != null)
{
if (limit != null) {
query.setMaxResults(limit);
}
return iterate(query);
@@ -322,8 +272,11 @@ public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDA
}
@Override
public int countItems(Context context, Collection collection, boolean includeArchived, boolean includeWithdrawn) throws SQLException {
Query query = createQuery(context, "select count(i) from Item i join i.collections c WHERE :collection IN c AND i.inArchive=:in_archive AND i.withdrawn=:withdrawn");
public int countItems(Context context, Collection collection, boolean includeArchived, boolean includeWithdrawn)
throws SQLException {
Query query = createQuery(context,
"select count(i) from Item i join i.collections c WHERE :collection IN c AND i" +
".inArchive=:in_archive AND i.withdrawn=:withdrawn");
query.setParameter("collection", collection);
query.setParameter("in_archive", includeArchived);
query.setParameter("withdrawn", includeWithdrawn);
@@ -332,13 +285,14 @@ public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDA
}
@Override
public int countItems(Context context, List<Collection> collections, boolean includeArchived, boolean includeWithdrawn) throws SQLException {
public int countItems(Context context, List<Collection> collections, boolean includeArchived,
boolean includeWithdrawn) throws SQLException {
if (collections.size() == 0) {
return 0;
}
Query query = createQuery(context, "select count(distinct i) from Item i " +
"join i.collections collection " +
"WHERE collection IN (:collections) AND i.inArchive=:in_archive AND i.withdrawn=:withdrawn");
"join i.collections collection " +
"WHERE collection IN (:collections) AND i.inArchive=:in_archive AND i.withdrawn=:withdrawn");
query.setParameter("collections", collections);
query.setParameter("in_archive", includeArchived);
query.setParameter("withdrawn", includeWithdrawn);
@@ -348,8 +302,7 @@ public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDA
@Override
public Iterator<Item> findByLastModifiedSince(Context context, Date since)
throws SQLException
{
throws SQLException {
Query query = createQuery(context, "SELECT i FROM item i WHERE last_modified > :last_modified");
query.setParameter("last_modified", since, TemporalType.TIMESTAMP);
return iterate(query);
@@ -362,7 +315,9 @@ public class ItemDAOImpl extends AbstractHibernateDSODAO<Item> implements ItemDA
@Override
public int countItems(Context context, boolean includeArchived, boolean includeWithdrawn) throws SQLException {
Query query = createQuery(context, "SELECT count(*) FROM Item i WHERE i.inArchive=:in_archive AND i.withdrawn=:withdrawn");
Query query = createQuery(context,
"SELECT count(*) FROM Item i WHERE i.inArchive=:in_archive AND i" +
".withdrawn=:withdrawn");
query.setParameter("in_archive", includeArchived);
query.setParameter("withdrawn", includeWithdrawn);
return count(query);

View File

@@ -7,22 +7,22 @@
*/
package org.dspace.content.dao.impl;
import org.dspace.content.*;
import org.dspace.content.dao.MetadataFieldDAO;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.RegistrationData;
import org.hibernate.Criteria;
import org.hibernate.FetchMode;
import org.hibernate.criterion.Order;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import org.dspace.content.MetadataField;
import org.dspace.content.MetadataField_;
import org.dspace.content.MetadataSchema;
import org.dspace.content.MetadataSchema_;
import org.dspace.content.dao.MetadataFieldDAO;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
/**
* Hibernate implementation of the Database Access Object interface class for the MetadataField object.
@@ -31,39 +31,37 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class MetadataFieldDAOImpl extends AbstractHibernateDAO<MetadataField> implements MetadataFieldDAO
{
protected MetadataFieldDAOImpl()
{
public class MetadataFieldDAOImpl extends AbstractHibernateDAO<MetadataField> implements MetadataFieldDAO {
protected MetadataFieldDAOImpl() {
super();
}
@Override
public MetadataField find(Context context, int metadataFieldId, MetadataSchema metadataSchema, String element,
String qualifier) throws SQLException{
String qualifier) throws SQLException {
Query query;
if(qualifier != null) {
if (qualifier != null) {
query = createQuery(context, "SELECT mf " +
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE mf.id != :id " +
"AND ms.name = :name AND mf.element = :element " +
"AND qualifier = :qualifier");
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE mf.id != :id " +
"AND ms.name = :name AND mf.element = :element " +
"AND qualifier = :qualifier");
} else {
query = createQuery(context, "SELECT mf " +
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE mf.id != :id " +
"AND ms.name = :name AND mf.element = :element " +
"AND mf.qualifier IS NULL");
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE mf.id != :id " +
"AND ms.name = :name AND mf.element = :element " +
"AND mf.qualifier IS NULL");
}
query.setParameter("id", metadataFieldId);
query.setParameter("name", metadataSchema.getName());
query.setParameter("element", element);
if(qualifier != null) {
if (qualifier != null) {
query.setParameter("qualifier", qualifier);
}
query.setHint("org.hibernate.cacheable", Boolean.TRUE);
@@ -72,34 +70,34 @@ public class MetadataFieldDAOImpl extends AbstractHibernateDAO<MetadataField> im
}
@Override
public MetadataField findByElement(Context context, MetadataSchema metadataSchema, String element, String qualifier) throws SQLException
{
public MetadataField findByElement(Context context, MetadataSchema metadataSchema, String element, String qualifier)
throws SQLException {
return findByElement(context, metadataSchema.getName(), element, qualifier);
}
@Override
public MetadataField findByElement(Context context, String metadataSchema, String element, String qualifier) throws SQLException
{
public MetadataField findByElement(Context context, String metadataSchema, String element, String qualifier)
throws SQLException {
Query query;
if(qualifier != null) {
if (qualifier != null) {
query = createQuery(context, "SELECT mf " +
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE ms.name = :name AND mf.element = :element " +
"AND qualifier = :qualifier");
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE ms.name = :name AND mf.element = :element " +
"AND qualifier = :qualifier");
} else {
query = createQuery(context, "SELECT mf " +
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE ms.name = :name AND mf.element = :element " +
"AND mf.qualifier IS NULL");
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE ms.name = :name AND mf.element = :element " +
"AND mf.qualifier IS NULL");
}
query.setParameter("name", metadataSchema);
query.setParameter("element", element);
if(qualifier != null) {
if (qualifier != null) {
query.setParameter("qualifier", qualifier);
}
query.setHint("org.hibernate.cacheable", Boolean.TRUE);
@@ -126,12 +124,12 @@ public class MetadataFieldDAOImpl extends AbstractHibernateDAO<MetadataField> im
}
@Override
public List<MetadataField> findFieldsByElementNameUnqualified(Context context, String metadataSchema, String element) throws SQLException
{
public List<MetadataField> findFieldsByElementNameUnqualified(Context context, String metadataSchema,
String element) throws SQLException {
Query query = createQuery(context, "SELECT mf " +
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE ms.name = :name AND mf.element = :element ");
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE ms.name = :name AND mf.element = :element ");
query.setParameter("name", metadataSchema);
@@ -141,15 +139,15 @@ public class MetadataFieldDAOImpl extends AbstractHibernateDAO<MetadataField> im
return list(query);
}
@Override
public List<MetadataField> findAllInSchema(Context context, MetadataSchema metadataSchema) throws SQLException {
Query query = createQuery(context, "SELECT mf " +
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE ms.name = :name " +
"ORDER BY mf.element ASC, mf.qualifier ASC ");
"FROM MetadataField mf " +
"JOIN FETCH mf.metadataSchema ms " +
"WHERE ms.name = :name " +
"ORDER BY mf.element ASC, mf.qualifier ASC ");
query.setParameter("name", metadataSchema.getName());

View File

@@ -7,22 +7,19 @@
*/
package org.dspace.content.dao.impl;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.dspace.content.MetadataSchema;
import org.dspace.content.MetadataSchema_;
import org.dspace.content.dao.MetadataSchemaDAO;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.Subscription;
import org.dspace.eperson.Subscription_;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
/**
* Hibernate implementation of the Database Access Object interface class for the MetadataSchema object.
@@ -31,10 +28,8 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class MetadataSchemaDAOImpl extends AbstractHibernateDAO<MetadataSchema> implements MetadataSchemaDAO
{
protected MetadataSchemaDAOImpl()
{
public class MetadataSchemaDAOImpl extends AbstractHibernateDAO<MetadataSchema> implements MetadataSchemaDAO {
protected MetadataSchemaDAOImpl() {
super();
}
@@ -47,12 +42,11 @@ public class MetadataSchemaDAOImpl extends AbstractHibernateDAO<MetadataSchema>
* @throws SQLException if database error
*/
@Override
public MetadataSchema findByNamespace(Context context, String namespace) throws SQLException
{
public MetadataSchema findByNamespace(Context context, String namespace) throws SQLException {
// Grab rows from DB
Query query = createQuery(context,
"SELECT ms FROM MetadataSchema ms " +
"WHERE ms.namespace = :namespace ");
"SELECT ms FROM MetadataSchema ms " +
"WHERE ms.namespace = :namespace ");
query.setParameter("namespace", namespace);
query.setHint("org.hibernate.cacheable", Boolean.TRUE);
@@ -87,11 +81,10 @@ public class MetadataSchemaDAOImpl extends AbstractHibernateDAO<MetadataSchema>
* @throws SQLException if database error
*/
@Override
public boolean uniqueNamespace(Context context, int metadataSchemaId, String namespace) throws SQLException
{
public boolean uniqueNamespace(Context context, int metadataSchemaId, String namespace) throws SQLException {
Query query = createQuery(context,
"SELECT ms FROM MetadataSchema ms " +
"WHERE ms.namespace = :namespace and ms.id != :id");
"SELECT ms FROM MetadataSchema ms " +
"WHERE ms.namespace = :namespace and ms.id != :id");
query.setParameter("namespace", namespace);
query.setParameter("id", metadataSchemaId);
@@ -110,11 +103,10 @@ public class MetadataSchemaDAOImpl extends AbstractHibernateDAO<MetadataSchema>
* @throws SQLException if database error
*/
@Override
public boolean uniqueShortName(Context context, int metadataSchemaId, String name) throws SQLException
{
public boolean uniqueShortName(Context context, int metadataSchemaId, String name) throws SQLException {
Query query = createQuery(context,
"SELECT ms FROM MetadataSchema ms " +
"WHERE ms.name = :name and ms.id != :id");
"SELECT ms FROM MetadataSchema ms " +
"WHERE ms.name = :name and ms.id != :id");
query.setParameter("name", name);
query.setParameter("id", metadataSchemaId);
@@ -134,11 +126,10 @@ public class MetadataSchemaDAOImpl extends AbstractHibernateDAO<MetadataSchema>
* @throws SQLException if database error
*/
@Override
public MetadataSchema find(Context context, String shortName) throws SQLException
{
public MetadataSchema find(Context context, String shortName) throws SQLException {
Query query = createQuery(context,
"SELECT ms FROM MetadataSchema ms " +
"WHERE ms.name = :name");
"SELECT ms FROM MetadataSchema ms " +
"WHERE ms.name = :name");
query.setParameter("name", shortName);

View File

@@ -7,28 +7,21 @@
*/
package org.dspace.content.dao.impl;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Root;
import org.dspace.content.MetadataField;
import org.dspace.content.MetadataField_;
import org.dspace.content.MetadataValue;
import org.dspace.content.dao.MetadataValueDAO;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.versioning.Version;
import org.dspace.versioning.VersionHistory;
import org.dspace.versioning.Version_;
import org.hibernate.Criteria;
import org.hibernate.FetchMode;
import org.hibernate.criterion.Restrictions;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.JoinType;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
/**
* Hibernate implementation of the Database Access Object interface class for the MetadataValue object.
@@ -37,17 +30,14 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class MetadataValueDAOImpl extends AbstractHibernateDAO<MetadataValue> implements MetadataValueDAO
{
protected MetadataValueDAOImpl()
{
public class MetadataValueDAOImpl extends AbstractHibernateDAO<MetadataValue> implements MetadataValueDAO {
protected MetadataValueDAOImpl() {
super();
}
@Override
public List<MetadataValue> findByField(Context context, MetadataField metadataField) throws SQLException
{
public List<MetadataValue> findByField(Context context, MetadataField metadataField) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, MetadataValue.class);
Root<MetadataValue> metadataValueRoot = criteriaQuery.from(MetadataValue.class);
@@ -56,13 +46,13 @@ public class MetadataValueDAOImpl extends AbstractHibernateDAO<MetadataValue> im
criteriaQuery.where(criteriaBuilder.equal(join.get(MetadataField_.id), metadataField.getID()));
return list(context, criteriaQuery,true, MetadataValue.class, -1, -1);
return list(context, criteriaQuery, true, MetadataValue.class, -1, -1);
}
@Override
public Iterator<MetadataValue> findByValueLike(Context context, String value) throws SQLException {
String queryString = "SELECT m FROM MetadataValue m JOIN m.metadataField f " +
"WHERE m.value like concat('%', concat(:searchString,'%')) ORDER BY m.id ASC";
"WHERE m.value like concat('%', concat(:searchString,'%')) ORDER BY m.id ASC";
Query query = createQuery(context, queryString);
query.setParameter("searchString", value);
@@ -80,9 +70,9 @@ public class MetadataValueDAOImpl extends AbstractHibernateDAO<MetadataValue> im
@Override
public MetadataValue getMinimum(Context context, int metadataFieldId)
throws SQLException
{
String queryString = "SELECT m FROM MetadataValue m JOIN FETCH m.metadataField WHERE m.metadataField.id = :metadata_field_id ORDER BY text_value";
throws SQLException {
String queryString = "SELECT m FROM MetadataValue m JOIN FETCH m.metadataField WHERE m.metadataField.id = " +
":metadata_field_id ORDER BY text_value";
Query query = createQuery(context, queryString);
query.setParameter("metadata_field_id", metadataFieldId);
query.setMaxResults(1);

View File

@@ -7,17 +7,15 @@
*/
package org.dspace.content.dao.impl;
import org.dspace.content.Site;
import org.dspace.content.dao.SiteDAO;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.identifier.DOI;
import org.hibernate.Criteria;
import java.sql.SQLException;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import org.dspace.content.Site;
import org.dspace.content.dao.SiteDAO;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
/**
* Hibernate implementation of the Database Access Object interface class for the Site object.
@@ -26,10 +24,8 @@ import java.sql.SQLException;
*
* @author kevinvandevelde at atmire.com
*/
public class SiteDAOImpl extends AbstractHibernateDAO<Site> implements SiteDAO
{
protected SiteDAOImpl()
{
public class SiteDAOImpl extends AbstractHibernateDAO<Site> implements SiteDAO {
protected SiteDAOImpl() {
super();
}

View File

@@ -7,37 +7,27 @@
*/
package org.dspace.content.dao.impl;
import org.dspace.content.Collection;
import org.dspace.content.Item;
import org.dspace.content.WorkspaceItem;
import org.dspace.content.WorkspaceItem_;
import org.dspace.content.dao.WorkspaceItemDAO;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.EPerson_;
import org.dspace.eperson.Group;
import org.dspace.harvest.HarvestedCollection_;
import org.dspace.identifier.DOI;
import org.dspace.workflow.WorkflowItem;
import org.hibernate.Criteria;
import javax.persistence.Query;
import org.hibernate.SQLQuery;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.hibernate.transform.BasicTransformerAdapter;
import org.springframework.jdbc.object.SqlQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.AbstractMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Root;
import org.dspace.content.Collection;
import org.dspace.content.Item;
import org.dspace.content.WorkspaceItem;
import org.dspace.content.WorkspaceItem_;
import org.dspace.content.dao.WorkspaceItemDAO;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.EPerson_;
import org.dspace.eperson.Group;
/**
* Hibernate implementation of the Database Access Object interface class for the WorkspaceItem object.
@@ -46,25 +36,23 @@ import java.util.Map;
*
* @author kevinvandevelde at atmire.com
*/
public class WorkspaceItemDAOImpl extends AbstractHibernateDAO<WorkspaceItem> implements WorkspaceItemDAO
{
protected WorkspaceItemDAOImpl()
{
public class WorkspaceItemDAOImpl extends AbstractHibernateDAO<WorkspaceItem> implements WorkspaceItemDAO {
protected WorkspaceItemDAOImpl() {
super();
}
@Override
public List<WorkspaceItem> findByEPerson(Context context, EPerson ep) throws SQLException
{
Query query = createQuery(context, "from WorkspaceItem ws where ws.item.submitter = :submitter order by workspaceItemId");
public List<WorkspaceItem> findByEPerson(Context context, EPerson ep) throws SQLException {
Query query = createQuery(context,
"from WorkspaceItem ws where ws.item.submitter = :submitter order by " +
"workspaceItemId");
query.setParameter("submitter", ep);
return list(query);
}
@Override
public List<WorkspaceItem> findByCollection(Context context, Collection c) throws SQLException
{
public List<WorkspaceItem> findByCollection(Context context, Collection c) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, WorkspaceItem.class);
Root<WorkspaceItem> workspaceItemRoot = criteriaQuery.from(WorkspaceItem.class);
@@ -75,8 +63,7 @@ public class WorkspaceItemDAOImpl extends AbstractHibernateDAO<WorkspaceItem> im
}
@Override
public WorkspaceItem findByItem(Context context, Item i) throws SQLException
{
public WorkspaceItem findByItem(Context context, Item i) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, WorkspaceItem.class);
Root<WorkspaceItem> workspaceItemRoot = criteriaQuery.from(WorkspaceItem.class);
@@ -86,8 +73,7 @@ public class WorkspaceItemDAOImpl extends AbstractHibernateDAO<WorkspaceItem> im
}
@Override
public List<WorkspaceItem> findAll(Context context) throws SQLException
{
public List<WorkspaceItem> findAll(Context context) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, WorkspaceItem.class);
@@ -101,10 +87,9 @@ public class WorkspaceItemDAOImpl extends AbstractHibernateDAO<WorkspaceItem> im
return list(context, criteriaQuery, false, WorkspaceItem.class, -1, -1);
}
@Override
public List<WorkspaceItem> findAll(Context context, Integer limit, Integer offset) throws SQLException
{
public List<WorkspaceItem> findAll(Context context, Integer limit, Integer offset) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, WorkspaceItem.class);
Root<WorkspaceItem> workspaceItemRoot = criteriaQuery.from(WorkspaceItem.class);
@@ -159,12 +144,13 @@ public class WorkspaceItemDAOImpl extends AbstractHibernateDAO<WorkspaceItem> im
@Override
@SuppressWarnings("unchecked")
public List<Map.Entry<Integer, Long>> getStageReachedCounts(Context context) throws SQLException {
Query query = createQuery(context,"SELECT wi.stageReached as stage_reached, count(*) as cnt from WorkspaceItem wi" +
" group by wi.stageReached order by wi.stageReached");
Query query = createQuery(context,
"SELECT wi.stageReached as stage_reached, count(*) as cnt from WorkspaceItem wi" +
" group by wi.stageReached order by wi.stageReached");
List<Object[]> list = query.getResultList();
List<Map.Entry<Integer, Long>> returnList = new LinkedList<>();
for(Object[] o : list) {
for (Object[] o : list) {
returnList.add(new AbstractMap.SimpleEntry<>((Integer) o[0], (Long) o[1]));
}
return returnList;

View File

@@ -124,22 +124,23 @@ public abstract class AbstractHibernateDAO<T> implements GenericDAO<T> {
return getHibernateSession(context).createQuery(query);
}
public List<T> list(Context context, CriteriaQuery criteriaQuery, boolean cacheable, Class<T> clazz, int maxResults, int offset) throws SQLException
{
public List<T> list(Context context, CriteriaQuery criteriaQuery, boolean cacheable, Class<T> clazz, int maxResults,
int offset) throws SQLException {
criteriaQuery.distinct(true);
@SuppressWarnings("unchecked")
List<T> result = (List<T>) executeCriteriaQuery(context, criteriaQuery, cacheable, clazz, maxResults, offset);
return result;
}
public List<T> list(Context context, CriteriaQuery criteriaQuery, boolean cacheable, Class<T> clazz, int maxResults, int offset, boolean distinct) throws SQLException
{
public List<T> list(Context context, CriteriaQuery criteriaQuery, boolean cacheable, Class<T> clazz, int maxResults,
int offset, boolean distinct) throws SQLException {
criteriaQuery.distinct(distinct);
@SuppressWarnings("unchecked")
List<T> result = (List<T>) executeCriteriaQuery(context,criteriaQuery,cacheable, clazz, maxResults, offset);
List<T> result = (List<T>) executeCriteriaQuery(context, criteriaQuery, cacheable, clazz, maxResults, offset);
return result;
}
public List<T> list(Query query)
{
public List<T> list(Query query) {
@SuppressWarnings("unchecked")
List<T> result = (List<T>) query.getResultList();
return result;
@@ -245,7 +246,7 @@ public abstract class AbstractHibernateDAO<T> implements GenericDAO<T> {
if (maxResults != -1) {
query.setMaxResults(maxResults);
}
if(offset != -1){
if (offset != -1) {
query.setFirstResult(offset);
}
return query.getResultList();

View File

@@ -43,8 +43,7 @@ public abstract class AbstractHibernateDSODAO<T extends DSpaceObject> extends Ab
* @return
* @throws SQLException
*/
public T findByLegacyId(Context context, int legacyId, Class<T> clazz) throws SQLException
{
public T findByLegacyId(Context context, int legacyId, Class<T> clazz) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, clazz);
Root<T> root = criteriaQuery.from(clazz);
@@ -114,7 +113,8 @@ public abstract class AbstractHibernateDSODAO<T extends DSpaceObject> extends Ab
* @param metadataSortFields fields on which to sort -- use this OR columnSortFields.
* @param columnSortFields columns on which to sort -- use this OR metadataSortFields.
*/
protected void addMetadataSortQuery(StringBuilder query, List<MetadataField> metadataSortFields, List<String> columnSortFields) {
protected void addMetadataSortQuery(StringBuilder query, List<MetadataField> metadataSortFields,
List<String> columnSortFields) {
addMetadataSortQuery(query, metadataSortFields, columnSortFields, ListUtils.EMPTY_LIST);
}

View File

@@ -44,8 +44,7 @@ public class EPersonDAOImpl extends AbstractHibernateDSODAO<EPerson> implements
}
@Override
public EPerson findByEmail(Context context, String email) throws SQLException
{
public EPerson findByEmail(Context context, String email) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, EPerson.class);
Root<EPerson> ePersonRoot = criteriaQuery.from(EPerson.class);
@@ -56,8 +55,7 @@ public class EPersonDAOImpl extends AbstractHibernateDSODAO<EPerson> implements
@Override
public EPerson findByNetid(Context context, String netid) throws SQLException
{
public EPerson findByNetid(Context context, String netid) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, EPerson.class);
Root<EPerson> ePersonRoot = criteriaQuery.from(EPerson.class);

View File

@@ -7,26 +7,21 @@
*/
package org.dspace.eperson.dao.impl;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.eperson.Group;
import org.dspace.eperson.Group2GroupCache;
import org.dspace.eperson.Group2GroupCache_;
import org.dspace.eperson.dao.Group2GroupCacheDAO;
import org.dspace.xmlworkflow.storedcomponents.PoolTask;
import org.hibernate.Criteria;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.Query;
import org.hibernate.criterion.Disjunction;
import org.hibernate.criterion.Restrictions;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.Group;
import org.dspace.eperson.Group2GroupCache;
import org.dspace.eperson.Group2GroupCache_;
import org.dspace.eperson.dao.Group2GroupCacheDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the Group2GroupCache object.
@@ -35,10 +30,8 @@ import java.util.Set;
*
* @author kevinvandevelde at atmire.com
*/
public class Group2GroupCacheDAOImpl extends AbstractHibernateDAO<Group2GroupCache> implements Group2GroupCacheDAO
{
protected Group2GroupCacheDAOImpl()
{
public class Group2GroupCacheDAOImpl extends AbstractHibernateDAO<Group2GroupCache> implements Group2GroupCacheDAO {
protected Group2GroupCacheDAOImpl() {
super();
}
@@ -58,10 +51,10 @@ public class Group2GroupCacheDAOImpl extends AbstractHibernateDAO<Group2GroupCac
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, Group2GroupCache.class);
Root<Group2GroupCache> group2GroupCacheRoot = criteriaQuery.from(Group2GroupCache.class);
List<Predicate> eqPredicates = new LinkedList<>();
for(Group group : groups){
for (Group group : groups) {
eqPredicates.add(criteriaBuilder.equal(group2GroupCacheRoot.get(Group2GroupCache_.child), group));
}
Predicate orPredicate = criteriaBuilder.or(eqPredicates.toArray(new Predicate[]{}));
Predicate orPredicate = criteriaBuilder.or(eqPredicates.toArray(new Predicate[] {}));
criteriaQuery.select(group2GroupCacheRoot);
criteriaQuery.where(orPredicate);
return list(context, criteriaQuery, true, Group2GroupCache.class, -1, -1);
@@ -70,7 +63,7 @@ public class Group2GroupCacheDAOImpl extends AbstractHibernateDAO<Group2GroupCac
@Override
public Group2GroupCache findByParentAndChild(Context context, Group parent, Group child) throws SQLException {
Query query = createQuery(context,
"FROM Group2GroupCache g WHERE g.parent = :parentGroup AND g.child = :childGroup");
"FROM Group2GroupCache g WHERE g.parent = :parentGroup AND g.child = :childGroup");
query.setParameter("parentGroup", parent);
query.setParameter("childGroup", child);
@@ -85,10 +78,11 @@ public class Group2GroupCacheDAOImpl extends AbstractHibernateDAO<Group2GroupCac
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, Group2GroupCache.class);
Root<Group2GroupCache> group2GroupCacheRoot = criteriaQuery.from(Group2GroupCache.class);
criteriaQuery.select(group2GroupCacheRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(group2GroupCacheRoot.get(Group2GroupCache_.parent), parent),
criteriaBuilder.equal(group2GroupCacheRoot.get(Group2GroupCache_.child), child)
)
);
criteriaQuery.where(
criteriaBuilder.and(criteriaBuilder.equal(group2GroupCacheRoot.get(Group2GroupCache_.parent), parent),
criteriaBuilder.equal(group2GroupCacheRoot.get(Group2GroupCache_.child), child)
)
);
return uniqueResult(context, criteriaQuery, true, Group2GroupCache.class, -1, -1);
}

View File

@@ -7,6 +7,12 @@
*/
package org.dspace.eperson.dao.impl;
import java.sql.SQLException;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
import javax.persistence.Query;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.dspace.content.MetadataField;
@@ -15,11 +21,6 @@ import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.Group;
import org.dspace.eperson.dao.GroupDAO;
import javax.persistence.Query;
import java.sql.SQLException;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
/**
* Hibernate implementation of the Database Access Object interface class for the Group object.
@@ -28,16 +29,14 @@ import java.util.UUID;
*
* @author kevinvandevelde at atmire.com
*/
public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements GroupDAO
{
protected GroupDAOImpl()
{
public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements GroupDAO {
protected GroupDAOImpl() {
super();
}
@Override
public List<Group> findByMetadataField(Context context, String searchValue, MetadataField metadataField) throws SQLException
{
public List<Group> findByMetadataField(Context context, String searchValue, MetadataField metadataField)
throws SQLException {
StringBuilder queryBuilder = new StringBuilder();
String groupTableName = "g";
queryBuilder.append("SELECT ").append(groupTableName).append(" FROM Group as ").append(groupTableName);
@@ -53,8 +52,8 @@ public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements Grou
}
@Override
public List<Group> findAll(Context context, List<MetadataField> sortMetadataFields, int pageSize, int offset) throws SQLException
{
public List<Group> findAll(Context context, List<MetadataField> sortMetadataFields, int pageSize, int offset)
throws SQLException {
StringBuilder queryBuilder = new StringBuilder();
String groupTableName = "g";
queryBuilder.append("SELECT ").append(groupTableName).append(" FROM Group as ").append(groupTableName);
@@ -64,10 +63,10 @@ public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements Grou
Query query = createQuery(context, queryBuilder.toString());
if (pageSize > 0) {
query.setMaxResults(pageSize);
query.setMaxResults(pageSize);
}
if (offset > 0) {
query.setFirstResult(offset);
query.setFirstResult(offset);
}
for (MetadataField sortField : sortMetadataFields) {
query.setParameter(sortField.toString(), sortField.getID());
@@ -78,12 +77,12 @@ public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements Grou
@Override
public List<Group> findAll(Context context, int pageSize, int offset) throws SQLException {
Query query = createQuery(context,
"SELECT g FROM Group g ORDER BY g.name ASC");
"SELECT g FROM Group g ORDER BY g.name ASC");
if (pageSize > 0) {
query.setMaxResults(pageSize);
query.setMaxResults(pageSize);
}
if (offset > 0) {
query.setFirstResult(offset);
query.setFirstResult(offset);
}
query.setHint("org.hibernate.cacheable", Boolean.TRUE);
@@ -92,7 +91,8 @@ public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements Grou
@Override
public List<Group> findByEPerson(Context context, EPerson ePerson) throws SQLException {
Query query = createQuery(context, "from Group where (from EPerson e where e.id = :eperson_id) in elements(epeople)");
Query query = createQuery(context,
"from Group where (from EPerson e where e.id = :eperson_id) in elements(epeople)");
query.setParameter("eperson_id", ePerson.getID());
query.setHint("org.hibernate.cacheable", Boolean.TRUE);
@@ -102,8 +102,8 @@ public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements Grou
@Override
public Group findByName(final Context context, final String name) throws SQLException {
Query query = createQuery(context,
"SELECT g from Group g " +
"where g.name = :name ");
"SELECT g from Group g " +
"where g.name = :name ");
query.setParameter("name", name);
query.setHint("org.hibernate.cacheable", Boolean.TRUE);
@@ -113,22 +113,22 @@ public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements Grou
@Override
public Group findByIdAndMembership(Context context, UUID id, EPerson ePerson) throws SQLException {
if(id == null || ePerson == null) {
if (id == null || ePerson == null) {
return null;
} else {
Query query = createQuery(context,
"SELECT DISTINCT g FROM Group g " +
"LEFT JOIN g.epeople p " +
"WHERE g.id = :id AND " +
"(p.id = :eperson_id OR " +
"EXISTS ( " +
"SELECT 1 FROM Group2GroupCache gc " +
"JOIN gc.parent parent " +
"JOIN gc.child child " +
"JOIN child.epeople cp " +
"WHERE parent.id = g.id AND cp.id = :eperson_id " +
") " +
")");
"SELECT DISTINCT g FROM Group g " +
"LEFT JOIN g.epeople p " +
"WHERE g.id = :id AND " +
"(p.id = :eperson_id OR " +
"EXISTS ( " +
"SELECT 1 FROM Group2GroupCache gc " +
"JOIN gc.parent parent " +
"JOIN gc.child child " +
"JOIN child.epeople cp " +
"WHERE parent.id = g.id AND cp.id = :eperson_id " +
") " +
")");
query.setParameter("id", id);
query.setParameter("eperson_id", ePerson.getID());
@@ -139,17 +139,16 @@ public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements Grou
}
@Override
public List<Group> findByNameLike(final Context context, final String groupName, final int offset, final int limit) throws SQLException {
public List<Group> findByNameLike(final Context context, final String groupName, final int offset, final int limit)
throws SQLException {
Query query = createQuery(context,
"SELECT g FROM Group g WHERE lower(g.name) LIKE lower(:name)");
"SELECT g FROM Group g WHERE lower(g.name) LIKE lower(:name)");
query.setParameter("name", "%" + StringUtils.trimToEmpty(groupName) + "%");
if(0 <= offset)
{
if (0 <= offset) {
query.setFirstResult(offset);
}
if(0 <= limit)
{
if (0 <= limit) {
query.setMaxResults(limit);
}
@@ -159,7 +158,7 @@ public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements Grou
@Override
public int countByNameLike(final Context context, final String groupName) throws SQLException {
Query query = createQuery(context,
"SELECT count(*) FROM Group g WHERE lower(g.name) LIKE lower(:name)");
"SELECT count(*) FROM Group g WHERE lower(g.name) LIKE lower(:name)");
query.setParameter("name", "%" + groupName + "%");
return count(query);
@@ -167,7 +166,8 @@ public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements Grou
@Override
public void delete(Context context, Group group) throws SQLException {
Query query = getHibernateSession(context).createSQLQuery("DELETE FROM group2group WHERE parent_id=:groupId or child_id=:groupId");
Query query = getHibernateSession(context)
.createSQLQuery("DELETE FROM group2group WHERE parent_id=:groupId or child_id=:groupId");
query.setParameter("groupId", group.getID());
query.executeUpdate();
super.delete(context, group);
@@ -178,8 +178,8 @@ public class GroupDAOImpl extends AbstractHibernateDSODAO<Group> implements Grou
public List<Pair<UUID, UUID>> getGroup2GroupResults(Context context, boolean flushQueries) throws SQLException {
Query query = createQuery(context, "SELECT new org.apache.commons.lang3.tuple.ImmutablePair(g.id, c.id) " +
"FROM Group g " +
"JOIN g.groups c ");
"FROM Group g " +
"JOIN g.groups c ");
@SuppressWarnings("unchecked")
List<Pair<UUID, UUID>> results = query.getResultList();

View File

@@ -7,19 +7,17 @@
*/
package org.dspace.eperson.dao.impl;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.eperson.Group2GroupCache;
import org.dspace.eperson.RegistrationData;
import org.dspace.eperson.RegistrationData_;
import org.dspace.eperson.dao.RegistrationDataDAO;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import java.sql.SQLException;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.RegistrationData;
import org.dspace.eperson.RegistrationData_;
import org.dspace.eperson.dao.RegistrationDataDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the RegistrationData object.
@@ -28,11 +26,9 @@ import java.sql.SQLException;
*
* @author kevinvandevelde at atmire.com
*/
public class RegistrationDataDAOImpl extends AbstractHibernateDAO<RegistrationData> implements RegistrationDataDAO
{
public class RegistrationDataDAOImpl extends AbstractHibernateDAO<RegistrationData> implements RegistrationDataDAO {
protected RegistrationDataDAOImpl()
{
protected RegistrationDataDAOImpl() {
super();
}

View File

@@ -47,7 +47,8 @@ public class SubscriptionDAOImpl extends AbstractHibernateDAO<Subscription> impl
}
@Override
public Subscription findByCollectionAndEPerson(Context context, EPerson eperson, Collection collection) throws SQLException {
public Subscription findByCollectionAndEPerson(Context context, EPerson eperson, Collection collection)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
javax.persistence.criteria.CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, Subscription.class);
Root<Subscription> subscriptionRoot = criteriaQuery.from(Subscription.class);
@@ -56,7 +57,7 @@ public class SubscriptionDAOImpl extends AbstractHibernateDAO<Subscription> impl
.where(criteriaBuilder.and(criteriaBuilder.equal(subscriptionRoot.get(Subscription_.ePerson), eperson),
criteriaBuilder.equal(subscriptionRoot.get(Subscription_.collection), collection)
)
);
);
return singleResult(context, criteriaQuery);
}

View File

@@ -7,31 +7,28 @@
*/
package org.dspace.handle.dao.impl;
import org.dspace.content.DSpaceObject;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.handle.Handle;
import org.dspace.handle.Handle_;
import org.dspace.handle.dao.HandleDAO;
import org.dspace.xmlworkflow.storedcomponents.ClaimedTask;
import org.hibernate.Criteria;
import javax.persistence.Query;
import org.hibernate.criterion.Restrictions;
import org.hibernate.dialect.Dialect;
import org.hibernate.engine.jdbc.dialect.internal.StandardDialectResolver;
import org.hibernate.engine.jdbc.dialect.spi.DatabaseMetaDataDialectResolutionInfoAdapter;
import org.hibernate.engine.jdbc.dialect.spi.DialectResolver;
import org.hibernate.jdbc.ReturningWork;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collections;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.dspace.content.DSpaceObject;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.handle.Handle;
import org.dspace.handle.Handle_;
import org.dspace.handle.dao.HandleDAO;
import org.hibernate.dialect.Dialect;
import org.hibernate.engine.jdbc.dialect.internal.StandardDialectResolver;
import org.hibernate.engine.jdbc.dialect.spi.DatabaseMetaDataDialectResolutionInfoAdapter;
import org.hibernate.engine.jdbc.dialect.spi.DialectResolver;
import org.hibernate.jdbc.ReturningWork;
/**
* Hibernate implementation of the Database Access Object interface class for the Handle object.
@@ -40,26 +37,24 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class HandleDAOImpl extends AbstractHibernateDAO<Handle> implements HandleDAO
{
public class HandleDAOImpl extends AbstractHibernateDAO<Handle> implements HandleDAO {
// The name of the sequence used to determine next available handle
private static final String HANDLE_SEQUENCE = "handle_seq";
protected HandleDAOImpl()
{
protected HandleDAOImpl() {
super();
}
@Override
public List<Handle> getHandlesByDSpaceObject(Context context, DSpaceObject dso) throws SQLException {
if(dso == null) {
if (dso == null) {
return Collections.emptyList();
} else {
Query query = createQuery(context,
"SELECT h " +
"FROM Handle h " +
"LEFT JOIN FETCH h.dso " +
"WHERE h.dso.id = :id ");
"SELECT h " +
"FROM Handle h " +
"LEFT JOIN FETCH h.dso " +
"WHERE h.dso.id = :id ");
query.setParameter("id", dso.getID());
@@ -71,10 +66,10 @@ public class HandleDAOImpl extends AbstractHibernateDAO<Handle> implements Handl
@Override
public Handle findByHandle(Context context, String handle) throws SQLException {
Query query = createQuery(context,
"SELECT h " +
"FROM Handle h " +
"LEFT JOIN FETCH h.dso " +
"WHERE h.handle = :handle ");
"SELECT h " +
"FROM Handle h " +
"LEFT JOIN FETCH h.dso " +
"WHERE h.handle = :handle ");
query.setParameter("handle", handle);
@@ -89,7 +84,7 @@ public class HandleDAOImpl extends AbstractHibernateDAO<Handle> implements Handl
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, Handle.class);
Root<Handle> handleRoot = criteriaQuery.from(Handle.class);
criteriaQuery.select(handleRoot);
criteriaQuery.where(criteriaBuilder.like(handleRoot.get(Handle_.handle), prefix+"%"));
criteriaQuery.where(criteriaBuilder.like(handleRoot.get(Handle_.handle), prefix + "%"));
return list(context, criteriaQuery, false, Handle.class, -1, -1);
}
@@ -102,14 +97,14 @@ public class HandleDAOImpl extends AbstractHibernateDAO<Handle> implements Handl
Root<Handle> handleRoot = criteriaQuery.from(Handle.class);
criteriaQuery.select(criteriaBuilder.count(criteriaQuery.from(Handle.class)));
criteriaQuery.where(criteriaBuilder.like(handleRoot.get(Handle_.handle), prefix+"%"));
criteriaQuery.where(criteriaBuilder.like(handleRoot.get(Handle_.handle), prefix + "%"));
return countLong(context, criteriaQuery, criteriaBuilder, handleRoot);
}
@Override
public int updateHandlesWithNewPrefix(Context context, String newPrefix, String oldPrefix) throws SQLException
{
String hql = "UPDATE Handle set handle = concat(:newPrefix, '/', substring(handle, :oldPrefixLength + 2)) WHERE handle like concat(:oldPrefix,'%')";
public int updateHandlesWithNewPrefix(Context context, String newPrefix, String oldPrefix) throws SQLException {
String hql = "UPDATE Handle set handle = concat(:newPrefix, '/', substring(handle, :oldPrefixLength + 2)) " +
"WHERE handle like concat(:oldPrefix,'%')";
Query query = createQuery(context, hql);
query.setParameter("newPrefix", newPrefix);
query.setParameter("oldPrefixLength", oldPrefix.length());
@@ -129,8 +124,7 @@ public class HandleDAOImpl extends AbstractHibernateDAO<Handle> implements Handl
* @throws SQLException if database error or sequence doesn't exist
*/
@Override
public Long getNextHandleSuffix(Context context) throws SQLException
{
public Long getNextHandleSuffix(Context context) throws SQLException {
// Create a new Hibernate ReturningWork, which will return the
// result of the next value in the Handle Sequence.
ReturningWork<Long> nextValReturningWork = new ReturningWork<Long>() {
@@ -140,16 +134,15 @@ public class HandleDAOImpl extends AbstractHibernateDAO<Handle> implements Handl
// Determine what dialect we are using for this DB
DialectResolver dialectResolver = new StandardDialectResolver();
Dialect dialect = dialectResolver.resolveDialect(new DatabaseMetaDataDialectResolutionInfoAdapter(connection.getMetaData()));
Dialect dialect = dialectResolver
.resolveDialect(new DatabaseMetaDataDialectResolutionInfoAdapter(connection.getMetaData()));
// Find the next value in our sequence (based on DB dialect)
try (PreparedStatement preparedStatement = connection.prepareStatement(dialect.getSequenceNextValString(HANDLE_SEQUENCE)))
{
try (PreparedStatement preparedStatement = connection
.prepareStatement(dialect.getSequenceNextValString(HANDLE_SEQUENCE))) {
// Execute query and return results
try(ResultSet resultSet = preparedStatement.executeQuery())
{
if(resultSet.next())
{
try (ResultSet resultSet = preparedStatement.executeQuery()) {
if (resultSet.next()) {
// Return result of query (from first column)
nextVal = resultSet.getLong(1);
}

View File

@@ -7,22 +7,21 @@
*/
package org.dspace.harvest.dao.impl;
import org.dspace.content.Bitstream;
import org.dspace.content.Bitstream_;
import org.dspace.content.Collection;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.harvest.HarvestedCollection;
import org.dspace.harvest.HarvestedCollection_;
import org.dspace.harvest.dao.HarvestedCollectionDAO;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import org.dspace.content.Collection;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.harvest.HarvestedCollection;
import org.dspace.harvest.HarvestedCollection_;
import org.dspace.harvest.dao.HarvestedCollectionDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the HarvestedCollection object.
@@ -31,17 +30,18 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class HarvestedCollectionDAOImpl extends AbstractHibernateDAO<HarvestedCollection> implements HarvestedCollectionDAO
{
protected HarvestedCollectionDAOImpl()
{
public class HarvestedCollectionDAOImpl extends AbstractHibernateDAO<HarvestedCollection>
implements HarvestedCollectionDAO {
protected HarvestedCollectionDAOImpl() {
super();
}
@Override
public HarvestedCollection findByStatusAndMinimalTypeOrderByLastHarvestedDesc(Context context, int status, int type, int limit) throws SQLException {
// Old query: "select collection_id from harvested_collection where harvest_type > ? and harvest_status = ? order by last_harvested desc limit 1";
public HarvestedCollection findByStatusAndMinimalTypeOrderByLastHarvestedDesc(Context context, int status, int type,
int limit) throws SQLException {
// Old query: "select collection_id from harvested_collection where harvest_type > ? and harvest_status = ?
// order by last_harvested desc limit 1";
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
@@ -57,8 +57,10 @@ public class HarvestedCollectionDAOImpl extends AbstractHibernateDAO<HarvestedCo
}
@Override
public HarvestedCollection findByStatusAndMinimalTypeOrderByLastHarvestedAsc(Context context, int status, int type, int limit) throws SQLException {
// Old query: "select collection_id from harvested_collection where harvest_type > ? and harvest_status = ? order by last_harvested asc limit 1";
public HarvestedCollection findByStatusAndMinimalTypeOrderByLastHarvestedAsc(Context context, int status, int type,
int limit) throws SQLException {
// Old query: "select collection_id from harvested_collection where harvest_type > ? and harvest_status = ?
// order by last_harvested asc limit 1";
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, HarvestedCollection.class);
@@ -78,7 +80,8 @@ public class HarvestedCollectionDAOImpl extends AbstractHibernateDAO<HarvestedCo
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, HarvestedCollection.class);
Root<HarvestedCollection> harvestedCollectionRoot = criteriaQuery.from(HarvestedCollection.class);
criteriaQuery.select(harvestedCollectionRoot);
criteriaQuery.where(criteriaBuilder.equal(harvestedCollectionRoot.get(HarvestedCollection_.harvestStatus), status));
criteriaQuery
.where(criteriaBuilder.equal(harvestedCollectionRoot.get(HarvestedCollection_.harvestStatus), status));
return list(context, criteriaQuery, false, HarvestedCollection.class, -1, -1);
}
@@ -88,16 +91,27 @@ public class HarvestedCollectionDAOImpl extends AbstractHibernateDAO<HarvestedCo
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, HarvestedCollection.class);
Root<HarvestedCollection> harvestedCollectionRoot = criteriaQuery.from(HarvestedCollection.class);
criteriaQuery.select(harvestedCollectionRoot);
criteriaQuery.where(criteriaBuilder.equal(harvestedCollectionRoot.get(HarvestedCollection_.collection), collection));
criteriaQuery
.where(criteriaBuilder.equal(harvestedCollectionRoot.get(HarvestedCollection_.collection), collection));
return singleResult(context, criteriaQuery);
}
@Override
public List<HarvestedCollection> findByLastHarvestedAndHarvestTypeAndHarvestStatusesAndHarvestTime(Context context, Date startTime, int minimalType, int[] statuses, int expirationStatus, Date expirationTime) throws SQLException {
public List<HarvestedCollection>
findByLastHarvestedAndHarvestTypeAndHarvestStatusesAndHarvestTime(Context context,
Date startTime,
int minimalType,
int[] statuses,
int expirationStatus,
Date expirationTime)
throws SQLException {
// Old query: "SELECT * FROM harvested_collection WHERE
// (last_harvested < ? or last_harvested is null) and harvest_type > ? and (harvest_status = ? or harvest_status = ? or (harvest_status=? and harvest_start_time < ?)) ORDER BY last_harvested",
// new java.sql.Timestamp(startTime.getTime()), 0, HarvestedCollection.STATUS_READY, HarvestedCollection.STATUS_OAI_ERROR, HarvestedCollection.STATUS_BUSY, new java.sql.Timestamp(expirationTime.getTime()));
// (last_harvested < ? or last_harvested is null) and harvest_type > ? and (harvest_status = ? or harvest_status = ?
// or (harvest_status=? and harvest_start_time < ?)) ORDER BY last_harvested",
// new java.sql.Timestamp(startTime.getTime()), 0, HarvestedCollection.STATUS_READY,
// HarvestedCollection.STATUS_OAI_ERROR, HarvestedCollection.STATUS_BUSY, new java.sql.Timestamp(expirationTime
// .getTime()));
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
@@ -105,29 +119,35 @@ public class HarvestedCollectionDAOImpl extends AbstractHibernateDAO<HarvestedCo
Root<HarvestedCollection> harvestedCollectionRoot = criteriaQuery.from(HarvestedCollection.class);
criteriaQuery.select(harvestedCollectionRoot);
Predicate orPredicate = criteriaBuilder.or(criteriaBuilder.lessThan(harvestedCollectionRoot.get(HarvestedCollection_.lastHarvested), startTime),
criteriaBuilder.isNull(harvestedCollectionRoot.get(HarvestedCollection_.lastHarvested))
);
Predicate orPredicate = criteriaBuilder
.or(criteriaBuilder.lessThan(harvestedCollectionRoot.get(HarvestedCollection_.lastHarvested), startTime),
criteriaBuilder.isNull(harvestedCollectionRoot.get(HarvestedCollection_.lastHarvested))
);
List<Predicate> orPredicates = new LinkedList<>();
for(int status : statuses){
orPredicates.add(criteriaBuilder.equal(harvestedCollectionRoot.get(HarvestedCollection_.harvestStatus), status));
for (int status : statuses) {
orPredicates
.add(criteriaBuilder.equal(harvestedCollectionRoot.get(HarvestedCollection_.harvestStatus), status));
}
Predicate andPredicate = criteriaBuilder.and(criteriaBuilder.equal(harvestedCollectionRoot.get(HarvestedCollection_.harvestStatus), expirationStatus),
criteriaBuilder.greaterThan(harvestedCollectionRoot.get(HarvestedCollection_.harvestStartTime), expirationTime)
);
Predicate andPredicate = criteriaBuilder.and(
criteriaBuilder.equal(harvestedCollectionRoot.get(HarvestedCollection_.harvestStatus), expirationStatus),
criteriaBuilder
.greaterThan(harvestedCollectionRoot.get(HarvestedCollection_.harvestStartTime), expirationTime)
);
orPredicates.add(andPredicate);
Predicate secondPredicate = criteriaBuilder.or(orPredicates.toArray(new Predicate[]{}));
Predicate secondPredicate = criteriaBuilder.or(orPredicates.toArray(new Predicate[] {}));
criteriaQuery.where(criteriaBuilder.and(orPredicate,
criteriaBuilder.greaterThan(harvestedCollectionRoot.get(HarvestedCollection_.harvestType), minimalType),
criteriaBuilder.greaterThan(
harvestedCollectionRoot.get(HarvestedCollection_.harvestType),
minimalType),
secondPredicate
)
);
)
);
List<javax.persistence.criteria.Order> orderList = new LinkedList<>();
orderList.add(criteriaBuilder.asc(harvestedCollectionRoot.get(HarvestedCollection_.lastHarvested)));
@@ -137,7 +157,6 @@ public class HarvestedCollectionDAOImpl extends AbstractHibernateDAO<HarvestedCo
return list(context, criteriaQuery, false, HarvestedCollection.class, -1, -1);
}
@Override
@@ -150,15 +169,17 @@ public class HarvestedCollectionDAOImpl extends AbstractHibernateDAO<HarvestedCo
return count(context, criteriaQuery, criteriaBuilder, harvestedCollectionRoot);
}
protected CriteriaQuery getByStatusAndMinimalTypeCriteria(Context context, int status, int type, int limit) throws SQLException {
protected CriteriaQuery getByStatusAndMinimalTypeCriteria(Context context, int status, int type, int limit)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, HarvestedCollection.class);
Root<HarvestedCollection> harvestedCollectionRoot = criteriaQuery.from(HarvestedCollection.class);
criteriaQuery.select(harvestedCollectionRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.greaterThan(harvestedCollectionRoot.get(HarvestedCollection_.harvestType), type),
criteriaBuilder.equal(harvestedCollectionRoot.get(HarvestedCollection_.harvestStatus), status)
)
);
criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.greaterThan(harvestedCollectionRoot.get(HarvestedCollection_.harvestType), type),
criteriaBuilder.equal(harvestedCollectionRoot.get(HarvestedCollection_.harvestStatus), status)
)
);
return criteriaQuery;
}

View File

@@ -7,23 +7,20 @@
*/
package org.dspace.harvest.dao.impl;
import org.dspace.content.Collection;
import org.dspace.content.Item;
import org.dspace.content.Item_;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.harvest.HarvestedItem;
import org.dspace.harvest.HarvestedItem_;
import org.dspace.harvest.dao.HarvestedItemDAO;
import org.dspace.identifier.DOI;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import java.sql.SQLException;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import org.dspace.content.Collection;
import org.dspace.content.Item;
import org.dspace.content.Item_;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.harvest.HarvestedItem;
import org.dspace.harvest.HarvestedItem_;
import org.dspace.harvest.dao.HarvestedItemDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the HarvestedItem object.
@@ -32,10 +29,8 @@ import java.sql.SQLException;
*
* @author kevinvandevelde at atmire.com
*/
public class HarvestedItemDAOImpl extends AbstractHibernateDAO<HarvestedItem> implements HarvestedItemDAO
{
protected HarvestedItemDAOImpl()
{
public class HarvestedItemDAOImpl extends AbstractHibernateDAO<HarvestedItem> implements HarvestedItemDAO {
protected HarvestedItemDAOImpl() {
super();
}
@@ -57,10 +52,11 @@ public class HarvestedItemDAOImpl extends AbstractHibernateDAO<HarvestedItem> im
Root<HarvestedItem> harvestedItemRoot = criteriaQuery.from(HarvestedItem.class);
Join<HarvestedItem, Item> join = harvestedItemRoot.join("item");
criteriaQuery.select(harvestedItemRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(harvestedItemRoot.get(HarvestedItem_.oaiId), itemOaiID),
criteriaBuilder.equal(join.get(Item_.owningCollection), collection)
)
);
criteriaQuery
.where(criteriaBuilder.and(criteriaBuilder.equal(harvestedItemRoot.get(HarvestedItem_.oaiId), itemOaiID),
criteriaBuilder.equal(join.get(Item_.owningCollection), collection)
)
);
return singleResult(context, criteriaQuery);
}

View File

@@ -7,25 +7,20 @@
*/
package org.dspace.identifier.dao.impl;
import org.dspace.content.DSpaceObject;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.identifier.DOI;
import org.dspace.identifier.DOI_;
import org.dspace.identifier.dao.DOIDAO;
import org.dspace.workflowbasic.BasicWorkflowItem;
import org.hibernate.Criteria;
import org.hibernate.criterion.Conjunction;
import org.hibernate.criterion.Disjunction;
import org.hibernate.criterion.Restrictions;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import org.dspace.content.DSpaceObject;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.identifier.DOI;
import org.dspace.identifier.DOI_;
import org.dspace.identifier.dao.DOIDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the DOI object.
@@ -34,10 +29,8 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class DOIDAOImpl extends AbstractHibernateDAO<DOI> implements DOIDAO
{
protected DOIDAOImpl()
{
public class DOIDAOImpl extends AbstractHibernateDAO<DOI> implements DOIDAO {
protected DOIDAOImpl() {
super();
}
@@ -52,8 +45,10 @@ public class DOIDAOImpl extends AbstractHibernateDAO<DOI> implements DOIDAO
}
@Override
public DOI findDOIByDSpaceObject(Context context, DSpaceObject dso, List<Integer> statusToExclude) throws SQLException {
//SELECT * FROM Doi WHERE resource_type_id = ? AND resource_id = ? AND resource_id = ? AND ((status != ? AND status != ?) OR status IS NULL)
public DOI findDOIByDSpaceObject(Context context, DSpaceObject dso, List<Integer> statusToExclude)
throws SQLException {
//SELECT * FROM Doi WHERE resource_type_id = ? AND resource_id = ? AND resource_id = ? AND ((status != ? AND
// status != ?) OR status IS NULL)
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, DOI.class);
@@ -62,17 +57,17 @@ public class DOIDAOImpl extends AbstractHibernateDAO<DOI> implements DOIDAO
List<Predicate> listToIncludeInOrPredicate = new LinkedList<>();
for(Integer status : statusToExclude){
for (Integer status : statusToExclude) {
listToIncludeInOrPredicate.add(criteriaBuilder.notEqual(doiRoot.get(DOI_.status), status));
}
listToIncludeInOrPredicate.add(criteriaBuilder.isNull(doiRoot.get(DOI_.status)));
Predicate orPredicate = criteriaBuilder.or(listToIncludeInOrPredicate.toArray(new Predicate[]{}));
Predicate orPredicate = criteriaBuilder.or(listToIncludeInOrPredicate.toArray(new Predicate[] {}));
criteriaQuery.where(criteriaBuilder.and(orPredicate,
criteriaBuilder.equal(doiRoot.get(DOI_.dSpaceObject), dso)
)
);
)
);
return singleResult(context, criteriaQuery);
}
@@ -84,18 +79,19 @@ public class DOIDAOImpl extends AbstractHibernateDAO<DOI> implements DOIDAO
Root<DOI> doiRoot = criteriaQuery.from(DOI.class);
criteriaQuery.select(doiRoot);
List<Predicate> orPredicates = new LinkedList<>();
for( Integer status : statuses){
for (Integer status : statuses) {
orPredicates.add(criteriaBuilder.equal(doiRoot.get(DOI_.status), status));
}
criteriaQuery.where(criteriaBuilder.or(orPredicates.toArray(new Predicate[]{})));
criteriaQuery.where(criteriaBuilder.or(orPredicates.toArray(new Predicate[] {})));
return list(context, criteriaQuery, false, DOI.class, -1, -1);
}
@Override
public List<DOI> findSimilarNotInState(Context context, String doi, List<Integer> excludedStatuses, boolean dsoNotNull)
throws SQLException
{
// SELECT * FROM Doi WHERE doi LIKE ? AND resource_type_id = ? AND resource_id IS NOT NULL AND status != ? AND status != ?
public List<DOI> findSimilarNotInState(Context context, String doi, List<Integer> excludedStatuses,
boolean dsoNotNull)
throws SQLException {
// SELECT * FROM Doi WHERE doi LIKE ? AND resource_type_id = ? AND resource_id IS NOT NULL AND status != ?
// AND status != ?
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, DOI.class);
@@ -104,22 +100,21 @@ public class DOIDAOImpl extends AbstractHibernateDAO<DOI> implements DOIDAO
List<Predicate> listToIncludeInOrPredicate = new LinkedList<>();
for(Integer status: excludedStatuses){
for (Integer status : excludedStatuses) {
listToIncludeInOrPredicate.add(criteriaBuilder.notEqual(doiRoot.get(DOI_.status), status));
}
List<Predicate> listToIncludeInAndPredicate = new LinkedList<>();
listToIncludeInAndPredicate.add(criteriaBuilder.like(doiRoot.get(DOI_.doi), doi));
listToIncludeInAndPredicate.add(criteriaBuilder.or(listToIncludeInOrPredicate.toArray(new Predicate[]{})));
if(dsoNotNull){
listToIncludeInAndPredicate.add(criteriaBuilder.or(listToIncludeInOrPredicate.toArray(new Predicate[] {})));
if (dsoNotNull) {
listToIncludeInAndPredicate.add(criteriaBuilder.isNotNull(doiRoot.get(DOI_.dSpaceObject)));
}
criteriaQuery.where(listToIncludeInAndPredicate.toArray(new Predicate[]{}));
criteriaQuery.where(listToIncludeInAndPredicate.toArray(new Predicate[] {}));
return list(context, criteriaQuery, false, DOI.class, -1, -1);
}
@Override

View File

@@ -7,25 +7,21 @@
*/
package org.dspace.versioning.dao.impl;
import org.dspace.content.Item;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.harvest.HarvestedCollection;
import org.dspace.harvest.HarvestedCollection_;
import org.dspace.versioning.Version;
import org.dspace.versioning.VersionHistory;
import org.dspace.versioning.Version_;
import org.dspace.versioning.dao.VersionDAO;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import org.dspace.content.Item;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.versioning.Version;
import org.dspace.versioning.VersionHistory;
import org.dspace.versioning.Version_;
import org.dspace.versioning.dao.VersionDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the Version object.
@@ -38,10 +34,8 @@ import java.util.List;
* @author kevinvandevelde at atmire.com
* @author Pascal-Nicolas Becker (dspace at pascal dash becker dot de)
*/
public class VersionDAOImpl extends AbstractHibernateDAO<Version> implements VersionDAO
{
protected VersionDAOImpl()
{
public class VersionDAOImpl extends AbstractHibernateDAO<Version> implements VersionDAO {
protected VersionDAOImpl() {
super();
}
@@ -57,28 +51,28 @@ public class VersionDAOImpl extends AbstractHibernateDAO<Version> implements Ver
@Override
public int getNextVersionNumber(Context c, VersionHistory vh) throws SQLException {
Query q = this.createQuery(c,
"SELECT (COALESCE(MAX(versionNumber), 0) + 1) "
+ "FROM Version WHERE versionHistory.id = :historyId");
Query q = this.createQuery(c,
"SELECT (COALESCE(MAX(versionNumber), 0) + 1) "
+ "FROM Version WHERE versionHistory.id = :historyId");
q.setParameter("historyId", vh.getID());
int next = (Integer) q.getSingleResult();
return next;
}
@Override
public List<Version> findVersionsWithItems(Context context, VersionHistory versionHistory)
throws SQLException
{
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, Version.class);
Root<Version> versionRoot = criteriaQuery.from(Version.class);
criteriaQuery.select(versionRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(versionRoot.get(Version_.versionHistory), versionHistory),
criteriaBuilder.isNotNull(versionRoot.get(Version_.item))
)
);
criteriaQuery
.where(criteriaBuilder.and(criteriaBuilder.equal(versionRoot.get(Version_.versionHistory), versionHistory),
criteriaBuilder.isNotNull(versionRoot.get(Version_.item))
)
);
List<javax.persistence.criteria.Order> orderList = new LinkedList<>();
orderList.add(criteriaBuilder.desc(versionRoot.get(Version_.versionNumber)));

View File

@@ -7,29 +7,22 @@
*/
package org.dspace.versioning.dao.impl;
import org.dspace.content.BitstreamFormat_;
import org.dspace.content.Item;
import org.dspace.content.Item_;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.versioning.VersionHistory;
import org.dspace.versioning.Version_;
import org.dspace.versioning.dao.VersionHistoryDAO;
import org.dspace.workflowbasic.BasicWorkflowItem;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import org.dspace.versioning.Version;
import org.hibernate.criterion.Order;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Root;
import org.dspace.content.Item;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.versioning.Version;
import org.dspace.versioning.VersionHistory;
import org.dspace.versioning.Version_;
import org.dspace.versioning.dao.VersionHistoryDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the VersionHistory object.
* This class is responsible for all database calls for the VersionHistory object and is autowired by spring
@@ -40,10 +33,8 @@ import javax.persistence.criteria.Root;
* @author Ben Bosman (ben at atmire dot com)
* @author kevinvandevelde at atmire.com
*/
public class VersionHistoryDAOImpl extends AbstractHibernateDAO<VersionHistory> implements VersionHistoryDAO
{
protected VersionHistoryDAOImpl()
{
public class VersionHistoryDAOImpl extends AbstractHibernateDAO<VersionHistory> implements VersionHistoryDAO {
protected VersionHistoryDAOImpl() {
super();
}

View File

@@ -7,26 +7,23 @@
*/
package org.dspace.workflowbasic.dao.impl;
import org.dspace.content.Collection;
import org.dspace.content.Item;
import org.dspace.content.Item_;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.eperson.EPerson;
import org.dspace.workflowbasic.BasicWorkflowItem;
import org.dspace.workflowbasic.BasicWorkflowItem_;
import org.dspace.workflowbasic.dao.BasicWorkflowItemDAO;
import org.hibernate.Criteria;
import java.sql.SQLException;
import java.util.List;
import javax.persistence.Query;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
import org.dspace.content.Collection;
import org.dspace.content.Item;
import org.dspace.content.Item_;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.workflowbasic.BasicWorkflowItem;
import org.dspace.workflowbasic.BasicWorkflowItem_;
import org.dspace.workflowbasic.dao.BasicWorkflowItemDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the BasicWorkflowItem object.
@@ -35,10 +32,8 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class BasicWorkflowItemDAOImpl extends AbstractHibernateDAO<BasicWorkflowItem> implements BasicWorkflowItemDAO
{
protected BasicWorkflowItemDAOImpl()
{
public class BasicWorkflowItemDAOImpl extends AbstractHibernateDAO<BasicWorkflowItem> implements BasicWorkflowItemDAO {
protected BasicWorkflowItemDAOImpl() {
super();
}
@@ -54,8 +49,7 @@ public class BasicWorkflowItemDAOImpl extends AbstractHibernateDAO<BasicWorkflow
}
@Override
public List<BasicWorkflowItem> findBySubmitter(Context context, EPerson ep) throws SQLException
{
public List<BasicWorkflowItem> findBySubmitter(Context context, EPerson ep) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
@@ -69,8 +63,7 @@ public class BasicWorkflowItemDAOImpl extends AbstractHibernateDAO<BasicWorkflow
}
@Override
public List<BasicWorkflowItem> findByCollection(Context context, Collection c) throws SQLException
{
public List<BasicWorkflowItem> findByCollection(Context context, Collection c) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, BasicWorkflowItem.class);
Root<BasicWorkflowItem> basicWorkflowItemRoot = criteriaQuery.from(BasicWorkflowItem.class);
@@ -80,9 +73,9 @@ public class BasicWorkflowItemDAOImpl extends AbstractHibernateDAO<BasicWorkflow
}
@Override
public List<BasicWorkflowItem> findByPooledTasks(Context context, EPerson ePerson) throws SQLException
{
String queryString = "select wf from TaskListItem as tli join tli.workflowItem wf where tli.ePerson = :eperson ORDER BY wf.workflowitemId";
public List<BasicWorkflowItem> findByPooledTasks(Context context, EPerson ePerson) throws SQLException {
String queryString = "select wf from TaskListItem as tli join tli.workflowItem wf where tli.ePerson = " +
":eperson ORDER BY wf.workflowitemId";
Query query = createQuery(context, queryString);
query.setParameter("eperson", ePerson);
return list(query);

View File

@@ -7,22 +7,20 @@
*/
package org.dspace.workflowbasic.dao.impl;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.eperson.EPerson;
import org.dspace.harvest.HarvestedItem;
import org.dspace.workflowbasic.BasicWorkflowItem;
import org.dspace.workflowbasic.TaskListItem;
import org.dspace.workflowbasic.TaskListItem_;
import org.dspace.workflowbasic.dao.TaskListItemDAO;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import java.sql.SQLException;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.workflowbasic.BasicWorkflowItem;
import org.dspace.workflowbasic.TaskListItem;
import org.dspace.workflowbasic.TaskListItem_;
import org.dspace.workflowbasic.dao.TaskListItemDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the TaskListItem object.
@@ -31,10 +29,8 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class TaskListItemDAOImpl extends AbstractHibernateDAO<TaskListItem> implements TaskListItemDAO
{
protected TaskListItemDAOImpl()
{
public class TaskListItemDAOImpl extends AbstractHibernateDAO<TaskListItem> implements TaskListItemDAO {
protected TaskListItemDAOImpl() {
super();
}

View File

@@ -7,22 +7,19 @@
*/
package org.dspace.xmlworkflow.storedcomponents.dao.impl;
import org.dspace.content.WorkspaceItem;
import org.dspace.core.Context;
import java.sql.SQLException;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.xmlworkflow.storedcomponents.ClaimedTask;
import org.dspace.xmlworkflow.storedcomponents.ClaimedTask_;
import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem;
import org.dspace.xmlworkflow.storedcomponents.dao.ClaimedTaskDAO;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
/**
* Hibernate implementation of the Database Access Object interface class for the ClaimedTask object.
@@ -31,10 +28,8 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class ClaimedTaskDAOImpl extends AbstractHibernateDAO<ClaimedTask> implements ClaimedTaskDAO
{
protected ClaimedTaskDAOImpl()
{
public class ClaimedTaskDAOImpl extends AbstractHibernateDAO<ClaimedTask> implements ClaimedTaskDAO {
protected ClaimedTaskDAOImpl() {
super();
}
@@ -50,15 +45,17 @@ public class ClaimedTaskDAOImpl extends AbstractHibernateDAO<ClaimedTask> implem
}
@Override
public ClaimedTask findByWorkflowItemAndEPerson(Context context, XmlWorkflowItem workflowItem, EPerson ePerson) throws SQLException {
public ClaimedTask findByWorkflowItemAndEPerson(Context context, XmlWorkflowItem workflowItem, EPerson ePerson)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ClaimedTask.class);
Root<ClaimedTask> claimedTaskRoot = criteriaQuery.from(ClaimedTask.class);
criteriaQuery.select(claimedTaskRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.workflowItem), workflowItem),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.owner), ePerson)
)
);
criteriaQuery.where(
criteriaBuilder.and(criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.workflowItem), workflowItem),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.owner), ePerson)
)
);
return uniqueResult(context, criteriaQuery, false, ClaimedTask.class, -1, -1);
@@ -75,44 +72,52 @@ public class ClaimedTaskDAOImpl extends AbstractHibernateDAO<ClaimedTask> implem
}
@Override
public List<ClaimedTask> findByWorkflowItemAndStepId(Context context, XmlWorkflowItem workflowItem, String stepID) throws SQLException {
public List<ClaimedTask> findByWorkflowItemAndStepId(Context context, XmlWorkflowItem workflowItem, String stepID)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ClaimedTask.class);
Root<ClaimedTask> claimedTaskRoot = criteriaQuery.from(ClaimedTask.class);
criteriaQuery.select(claimedTaskRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.workflowItem), workflowItem),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.stepId), stepID)
)
);
criteriaQuery.where(
criteriaBuilder.and(criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.workflowItem), workflowItem),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.stepId), stepID)
)
);
return list(context, criteriaQuery, false, ClaimedTask.class, -1, -1);
}
@Override
public ClaimedTask findByEPersonAndWorkflowItemAndStepIdAndActionId(Context context, EPerson ePerson, XmlWorkflowItem workflowItem, String stepID, String actionID) throws SQLException {
public ClaimedTask findByEPersonAndWorkflowItemAndStepIdAndActionId(Context context, EPerson ePerson,
XmlWorkflowItem workflowItem, String stepID,
String actionID) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ClaimedTask.class);
Root<ClaimedTask> claimedTaskRoot = criteriaQuery.from(ClaimedTask.class);
criteriaQuery.select(claimedTaskRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.workflowItem), workflowItem),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.stepId), stepID),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.owner), ePerson),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.actionId), actionID)
)
);
criteriaQuery.where(
criteriaBuilder.and(criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.workflowItem), workflowItem),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.stepId), stepID),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.owner), ePerson),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.actionId), actionID)
)
);
return uniqueResult(context, criteriaQuery, false, ClaimedTask.class, -1, -1);
}
@Override
public List<ClaimedTask> findByWorkflowItemAndStepIdAndActionId(Context context, XmlWorkflowItem workflowItem, String stepID, String actionID) throws SQLException {
public List<ClaimedTask> findByWorkflowItemAndStepIdAndActionId(Context context, XmlWorkflowItem workflowItem,
String stepID, String actionID)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, ClaimedTask.class);
Root<ClaimedTask> claimedTaskRoot = criteriaQuery.from(ClaimedTask.class);
criteriaQuery.select(claimedTaskRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.workflowItem), workflowItem),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.stepId), stepID),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.actionId), actionID)
)
);
criteriaQuery.where(
criteriaBuilder.and(criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.workflowItem), workflowItem),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.stepId), stepID),
criteriaBuilder.equal(claimedTaskRoot.get(ClaimedTask_.actionId), actionID)
)
);
return list(context, criteriaQuery, false, ClaimedTask.class, -1, -1);
}

View File

@@ -7,21 +7,19 @@
*/
package org.dspace.xmlworkflow.storedcomponents.dao.impl;
import org.dspace.content.Collection;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.xmlworkflow.storedcomponents.CollectionRole;
import org.dspace.xmlworkflow.storedcomponents.CollectionRole_;
import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem;
import org.dspace.xmlworkflow.storedcomponents.dao.CollectionRoleDAO;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import java.sql.SQLException;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
import org.dspace.content.Collection;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.xmlworkflow.storedcomponents.CollectionRole;
import org.dspace.xmlworkflow.storedcomponents.CollectionRole_;
import org.dspace.xmlworkflow.storedcomponents.dao.CollectionRoleDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the CollectionRole object.
@@ -30,10 +28,8 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class CollectionRoleDAOImpl extends AbstractHibernateDAO<CollectionRole> implements CollectionRoleDAO
{
protected CollectionRoleDAOImpl()
{
public class CollectionRoleDAOImpl extends AbstractHibernateDAO<CollectionRole> implements CollectionRoleDAO {
protected CollectionRoleDAOImpl() {
super();
}
@@ -48,15 +44,17 @@ public class CollectionRoleDAOImpl extends AbstractHibernateDAO<CollectionRole>
}
@Override
public CollectionRole findByCollectionAndRole(Context context, Collection collection, String role) throws SQLException {
public CollectionRole findByCollectionAndRole(Context context, Collection collection, String role)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, CollectionRole.class);
Root<CollectionRole> collectionRoleRoot = criteriaQuery.from(CollectionRole.class);
criteriaQuery.select(collectionRoleRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(collectionRoleRoot.get(CollectionRole_.collection), collection),
criteriaBuilder.equal(collectionRoleRoot.get(CollectionRole_.roleId), role)
)
);
criteriaQuery.where(
criteriaBuilder.and(criteriaBuilder.equal(collectionRoleRoot.get(CollectionRole_.collection), collection),
criteriaBuilder.equal(collectionRoleRoot.get(CollectionRole_.roleId), role)
)
);
return uniqueResult(context, criteriaQuery, false, CollectionRole.class, -1, -1);
}

View File

@@ -7,22 +7,19 @@
*/
package org.dspace.xmlworkflow.storedcomponents.dao.impl;
import org.dspace.content.Community;
import org.dspace.core.Context;
import java.sql.SQLException;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.xmlworkflow.storedcomponents.InProgressUser;
import org.dspace.xmlworkflow.storedcomponents.InProgressUser_;
import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem;
import org.dspace.xmlworkflow.storedcomponents.dao.InProgressUserDAO;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
/**
* Hibernate implementation of the Database Access Object interface class for the InProgressUser object.
@@ -31,24 +28,24 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class InProgressUserDAOImpl extends AbstractHibernateDAO<InProgressUser> implements InProgressUserDAO
{
protected InProgressUserDAOImpl()
{
public class InProgressUserDAOImpl extends AbstractHibernateDAO<InProgressUser> implements InProgressUserDAO {
protected InProgressUserDAOImpl() {
super();
}
@Override
public InProgressUser findByWorkflowItemAndEPerson(Context context, XmlWorkflowItem workflowItem, EPerson ePerson) throws SQLException {
public InProgressUser findByWorkflowItemAndEPerson(Context context, XmlWorkflowItem workflowItem, EPerson ePerson)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, InProgressUser.class);
Root<InProgressUser> inProgressUserRoot = criteriaQuery.from(InProgressUser.class);
criteriaQuery.select(inProgressUserRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.workflowItem), workflowItem),
criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.ePerson),ePerson)
)
);
criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.workflowItem), workflowItem),
criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.ePerson), ePerson)
)
);
return uniqueResult(context, criteriaQuery, false, InProgressUser.class, -1, -1);
}
@@ -82,10 +79,11 @@ public class InProgressUserDAOImpl extends AbstractHibernateDAO<InProgressUser>
Root<InProgressUser> inProgressUserRoot = criteriaQuery.from(InProgressUser.class);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.workflowItem), workflowItem),
criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.finished), false)
)
);
criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.workflowItem), workflowItem),
criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.finished), false)
)
);
return count(context, criteriaQuery, criteriaBuilder, inProgressUserRoot);
}
@@ -97,9 +95,10 @@ public class InProgressUserDAOImpl extends AbstractHibernateDAO<InProgressUser>
Root<InProgressUser> inProgressUserRoot = criteriaQuery.from(InProgressUser.class);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.workflowItem), workflowItem),
criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.finished), true)
)
criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.workflowItem), workflowItem),
criteriaBuilder.equal(inProgressUserRoot.get(InProgressUser_.finished), true)
)
);
return count(context, criteriaQuery, criteriaBuilder, inProgressUserRoot);
}

View File

@@ -7,23 +7,20 @@
*/
package org.dspace.xmlworkflow.storedcomponents.dao.impl;
import org.dspace.content.Bitstream;
import org.dspace.core.Context;
import java.sql.SQLException;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.Group;
import org.dspace.xmlworkflow.storedcomponents.PoolTask;
import org.dspace.xmlworkflow.storedcomponents.PoolTask_;
import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem;
import org.dspace.xmlworkflow.storedcomponents.dao.PoolTaskDAO;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
/**
* Hibernate implementation of the Database Access Object interface class for the PoolTask object.
@@ -32,10 +29,8 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class PoolTaskDAOImpl extends AbstractHibernateDAO<PoolTask> implements PoolTaskDAO
{
protected PoolTaskDAOImpl()
{
public class PoolTaskDAOImpl extends AbstractHibernateDAO<PoolTask> implements PoolTaskDAO {
protected PoolTaskDAOImpl() {
super();
}
@@ -71,28 +66,32 @@ public class PoolTaskDAOImpl extends AbstractHibernateDAO<PoolTask> implements P
}
@Override
public PoolTask findByWorkflowItemAndEPerson(Context context, XmlWorkflowItem workflowItem, EPerson ePerson) throws SQLException {
public PoolTask findByWorkflowItemAndEPerson(Context context, XmlWorkflowItem workflowItem, EPerson ePerson)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, PoolTask.class);
Root<PoolTask> poolTaskRoot = criteriaQuery.from(PoolTask.class);
criteriaQuery.select(poolTaskRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(poolTaskRoot.get(PoolTask_.workflowItem), workflowItem),
criteriaBuilder.equal(poolTaskRoot.get(PoolTask_.ePerson), ePerson)
)
);
criteriaQuery
.where(criteriaBuilder.and(criteriaBuilder.equal(poolTaskRoot.get(PoolTask_.workflowItem), workflowItem),
criteriaBuilder.equal(poolTaskRoot.get(PoolTask_.ePerson), ePerson)
)
);
return uniqueResult(context, criteriaQuery, false, PoolTask.class, -1, -1);
}
@Override
public PoolTask findByWorkflowItemAndGroup(Context context, Group group, XmlWorkflowItem workflowItem) throws SQLException {
public PoolTask findByWorkflowItemAndGroup(Context context, Group group, XmlWorkflowItem workflowItem)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, PoolTask.class);
Root<PoolTask> poolTaskRoot = criteriaQuery.from(PoolTask.class);
criteriaQuery.select(poolTaskRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(poolTaskRoot.get(PoolTask_.workflowItem), workflowItem),
criteriaBuilder.equal(poolTaskRoot.get(PoolTask_.group), group)
)
);
criteriaQuery
.where(criteriaBuilder.and(criteriaBuilder.equal(poolTaskRoot.get(PoolTask_.workflowItem), workflowItem),
criteriaBuilder.equal(poolTaskRoot.get(PoolTask_.group), group)
)
);
return uniqueResult(context, criteriaQuery, false, PoolTask.class, -1, -1);
}
}

View File

@@ -7,22 +7,19 @@
*/
package org.dspace.xmlworkflow.storedcomponents.dao.impl;
import org.dspace.core.Context;
import java.sql.SQLException;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.xmlworkflow.storedcomponents.PoolTask;
import org.dspace.xmlworkflow.storedcomponents.WorkflowItemRole;
import org.dspace.xmlworkflow.storedcomponents.WorkflowItemRole_;
import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem;
import org.dspace.xmlworkflow.storedcomponents.dao.WorkflowItemRoleDAO;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
/**
* Hibernate implementation of the Database Access Object interface class for the WorkflowItemRole object.
@@ -31,33 +28,40 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class WorkflowItemRoleDAOImpl extends AbstractHibernateDAO<WorkflowItemRole> implements WorkflowItemRoleDAO
{
protected WorkflowItemRoleDAOImpl()
{
public class WorkflowItemRoleDAOImpl extends AbstractHibernateDAO<WorkflowItemRole> implements WorkflowItemRoleDAO {
protected WorkflowItemRoleDAOImpl() {
super();
}
@Override
public List<WorkflowItemRole> findByWorkflowItemAndRole(Context context, XmlWorkflowItem workflowItem, String role) throws SQLException {
public List<WorkflowItemRole> findByWorkflowItemAndRole(Context context,
XmlWorkflowItem workflowItem,
String role) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, WorkflowItemRole.class);
Root<WorkflowItemRole> workflowItemRoleRoot = criteriaQuery.from(WorkflowItemRole.class);
criteriaQuery.select(workflowItemRoleRoot);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder.equal(workflowItemRoleRoot.get(WorkflowItemRole_.workflowItem), workflowItem),
criteriaBuilder.equal(workflowItemRoleRoot.get(WorkflowItemRole_.roleId), role)
)
);
criteriaQuery.where(criteriaBuilder.and(criteriaBuilder
.equal(workflowItemRoleRoot.get(WorkflowItemRole_.workflowItem),
workflowItem),
criteriaBuilder
.equal(workflowItemRoleRoot.get(WorkflowItemRole_.roleId),
role)
)
);
return list(context, criteriaQuery, false, WorkflowItemRole.class, -1, -1);
}
@Override
public List<WorkflowItemRole> findByWorkflowItem(Context context, XmlWorkflowItem workflowItem) throws SQLException {
public List<WorkflowItemRole> findByWorkflowItem(Context context,
XmlWorkflowItem workflowItem) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, WorkflowItemRole.class);
Root<WorkflowItemRole> workflowItemRoleRoot = criteriaQuery.from(WorkflowItemRole.class);
criteriaQuery.select(workflowItemRoleRoot);
criteriaQuery.where(criteriaBuilder.equal(workflowItemRoleRoot.get(WorkflowItemRole_.workflowItem), workflowItem));
criteriaQuery.where(criteriaBuilder.equal(workflowItemRoleRoot.get(WorkflowItemRole_.workflowItem),
workflowItem));
return list(context, criteriaQuery, false, WorkflowItemRole.class, -1, -1);
}

View File

@@ -7,25 +7,23 @@
*/
package org.dspace.xmlworkflow.storedcomponents.dao.impl;
import org.dspace.content.Collection;
import org.dspace.content.Item;
import org.dspace.content.Item_;
import org.dspace.core.Context;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.eperson.EPerson;
import org.dspace.harvest.HarvestedCollection;
import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem;
import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem_;
import org.dspace.xmlworkflow.storedcomponents.dao.XmlWorkflowItemDAO;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import java.sql.SQLException;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
import org.dspace.content.Collection;
import org.dspace.content.Item;
import org.dspace.content.Item_;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem;
import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem_;
import org.dspace.xmlworkflow.storedcomponents.dao.XmlWorkflowItemDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the XmlWorkflowItem object.
@@ -34,27 +32,28 @@ import java.util.List;
*
* @author kevinvandevelde at atmire.com
*/
public class XmlWorkflowItemDAOImpl extends AbstractHibernateDAO<XmlWorkflowItem> implements XmlWorkflowItemDAO
{
public class XmlWorkflowItemDAOImpl extends AbstractHibernateDAO<XmlWorkflowItem> implements XmlWorkflowItemDAO {
protected XmlWorkflowItemDAOImpl()
{
protected XmlWorkflowItemDAOImpl() {
super();
}
@Override
public List<XmlWorkflowItem> findAllInCollection(Context context, Integer offset, Integer limit, Collection collection) throws SQLException {
public List<XmlWorkflowItem> findAllInCollection(Context context, Integer offset,
Integer limit,
Collection collection) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, XmlWorkflowItem.class);
Root<XmlWorkflowItem> xmlWorkflowItemRoot = criteriaQuery.from(XmlWorkflowItem.class);
criteriaQuery.select(xmlWorkflowItemRoot);
if(collection!=null){
criteriaQuery.where(criteriaBuilder.equal(xmlWorkflowItemRoot.get(XmlWorkflowItem_.collection), collection));
if (collection != null) {
criteriaQuery.where(criteriaBuilder.equal(xmlWorkflowItemRoot.get(XmlWorkflowItem_.collection),
collection));
}
if(offset == null){
if (offset == null) {
offset = -1;
}
if(limit != null){
if (limit != null) {
limit = -1;
}
return list(context, criteriaQuery, false, XmlWorkflowItem.class, limit, offset);
@@ -73,8 +72,9 @@ public class XmlWorkflowItemDAOImpl extends AbstractHibernateDAO<XmlWorkflowItem
CriteriaQuery<Long> criteriaQuery = criteriaBuilder.createQuery(Long.class);
Root<XmlWorkflowItem> xmlWorkflowItemRoot = criteriaQuery.from(XmlWorkflowItem.class);
if(collection != null){
criteriaQuery.where(criteriaBuilder.equal(xmlWorkflowItemRoot.get(XmlWorkflowItem_.collection), collection));
if (collection != null) {
criteriaQuery.where(criteriaBuilder.equal(xmlWorkflowItemRoot.get(XmlWorkflowItem_.collection),
collection));
}
return count(context, criteriaQuery, criteriaBuilder, xmlWorkflowItemRoot);
}