Added support for sortable params to KeywordDao
This commit is contained in:
parent
55d52cbce0
commit
a29ca62bae
src/main/java/se/su/dsv/scipro/match/dao
@ -1,8 +1,10 @@
|
||||
package se.su.dsv.scipro.match.dao.interfaces;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.Dao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.LazyDeleteDao;
|
||||
import se.su.dsv.scipro.match.dataobject.Keyword;
|
||||
import se.su.dsv.scipro.match.dataobject.KeywordType;
|
||||
@ -10,6 +12,7 @@ import se.su.dsv.scipro.match.dataobject.KeywordType;
|
||||
public interface KeywordDao extends LazyDeleteDao<Keyword>{
|
||||
|
||||
Set<Keyword> getKeywords(KeywordType type, boolean includeDeleted);
|
||||
List<Keyword> getKeywordList(Params params);
|
||||
|
||||
public List<Keyword> findAllFromType(KeywordType kt, boolean includeDeleted);
|
||||
|
||||
@ -17,4 +20,41 @@ public interface KeywordDao extends LazyDeleteDao<Keyword>{
|
||||
Keyword getKeywordByNameAndType(String keywordName, KeywordType type);
|
||||
|
||||
|
||||
public static class Params extends Dao.SortableParams implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 5317030582030781723L;
|
||||
|
||||
private String keyword;
|
||||
private KeywordType type;
|
||||
private boolean includeDeleted = false;
|
||||
|
||||
public Params() {
|
||||
//Sort keywords on their name in ascending order as default when using Params
|
||||
setSortOn("keyword", Sort.ASCENDING);
|
||||
}
|
||||
|
||||
public void setKeyword(String keyword) {
|
||||
this.keyword = keyword;
|
||||
}
|
||||
|
||||
public String getKeyword() {
|
||||
return keyword;
|
||||
}
|
||||
|
||||
public void setType(KeywordType type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public KeywordType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setIncludeDeleted(boolean includeDeleted) {
|
||||
this.includeDeleted = includeDeleted;
|
||||
}
|
||||
|
||||
public boolean isIncludeDeleted() {
|
||||
return includeDeleted;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,7 @@ import org.springframework.orm.jpa.JpaCallback;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.jpa.AbstractQuerySet;
|
||||
import se.su.dsv.scipro.data.dao.jpa.AbstractSortableQuerySet;
|
||||
import se.su.dsv.scipro.data.dao.jpa.LazyDeleteAbstractDaoJPAImp;
|
||||
import se.su.dsv.scipro.data.dao.jpa.Query;
|
||||
@ -41,6 +42,18 @@ public class KeywordDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<Keyword> imple
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Keyword> getKeywordList(Params params) {
|
||||
return getJpaTemplate().execute(createQuerySet(params).fetchCallback());
|
||||
}
|
||||
|
||||
private AbstractQuerySet<Keyword> createQuerySet(Params params) {
|
||||
return new QuerySet()
|
||||
.type(params.getType())
|
||||
.includeDeleted(params.isIncludeDeleted())
|
||||
.sort(params);
|
||||
}
|
||||
|
||||
private static class QuerySet extends AbstractSortableQuerySet<Keyword> {
|
||||
public QuerySet() {
|
||||
super(Keyword.class);
|
||||
@ -55,6 +68,14 @@ public class KeywordDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<Keyword> imple
|
||||
return this;
|
||||
}
|
||||
|
||||
public QuerySet includeDeleted(boolean includeDeleted) {
|
||||
if(!includeDeleted) {
|
||||
getQuery().combine(
|
||||
new Query().where("k.deleted = false"));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public QuerySet noDeleted() {
|
||||
getQuery().combine(
|
||||
new Query().where("k.deleted = false"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user