Lagt till daos för schematemplates
git-svn-id: svn://svn.dsv.su.se/scipro/scipro/trunk@326 73ecded7-942e-4092-bab0-0e58ef0ee984
This commit is contained in:
parent
60cd7f2a48
commit
3a394e306e
@ -0,0 +1,101 @@
|
||||
package se.su.dsv.scipro.data.dao.jpa;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.NoResultException;
|
||||
import javax.persistence.PersistenceException;
|
||||
import javax.persistence.TypedQuery;
|
||||
|
||||
import org.springframework.orm.jpa.JpaCallback;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.EventTemplateDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.EventTemplate;
|
||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
import se.su.dsv.scipro.data.enums.ProjectStatus;
|
||||
|
||||
@Repository("eventTemplateDao")
|
||||
public class EventTemplateDaoJPAImp extends AbstractDaoJPAImp<EventTemplate>
|
||||
implements EventTemplateDao {
|
||||
|
||||
public EventTemplateDaoJPAImp() {
|
||||
super(EventTemplate.class);
|
||||
}
|
||||
/*
|
||||
@Transactional
|
||||
public List<EventTemplate> getSysAdminTemplates() {
|
||||
return getJpaTemplate().execute(new JpaCallback<List<EventTemplate>>() {
|
||||
public List<EventTemplate> doInJpa(EntityManager em)
|
||||
throws PersistenceException {
|
||||
String q = "select et " +
|
||||
"from EventTemplate et " +
|
||||
"where et.isSysAdminTemplate = true ";
|
||||
|
||||
q += "order by et.templateName asc";
|
||||
|
||||
TypedQuery<EventTemplate> query = em.createQuery(q, EventTemplate.class);
|
||||
|
||||
try {
|
||||
return query.getResultList();
|
||||
} catch (NoResultException e) {
|
||||
return new ArrayList<EventTemplate>();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public List<EventTemplate> getEventTemplates(final User u, final boolean onlySysAdminTemplates) {
|
||||
return getJpaTemplate().execute(new JpaCallback<List<EventTemplate>>() {
|
||||
public List<EventTemplate> doInJpa(EntityManager em)
|
||||
throws PersistenceException {
|
||||
|
||||
if(!onlySysAdminTemplates && u == null){
|
||||
throw new IllegalArgumentException("If you don't want sysadmintemplates you cannot pass a nulluser");
|
||||
}
|
||||
|
||||
String selectClause = "select et ";
|
||||
String fromClause = "from EventTemplate et ";
|
||||
String joinClause = "";
|
||||
String conditions = "";
|
||||
|
||||
if(onlySysAdminTemplates){
|
||||
conditions += "where et.isSysAdminTemplate = true ";
|
||||
} else {
|
||||
fromClause += ", User u ";
|
||||
joinClause += "join u.roles role ";
|
||||
conditions += "where et.templateCreator.id = role.id " +
|
||||
"and et.isSysAdminTemplate = false " +
|
||||
"and u = :user ";
|
||||
}
|
||||
String q = selectClause +
|
||||
fromClause +
|
||||
joinClause +
|
||||
conditions +
|
||||
"order by et.templateName asc ";
|
||||
|
||||
TypedQuery<EventTemplate> query = em.createQuery(q, EventTemplate.class);
|
||||
|
||||
if(!onlySysAdminTemplates){
|
||||
query.setParameter("user", u);
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
return query.getResultList();
|
||||
} catch (NoResultException e) {
|
||||
return new ArrayList<EventTemplate>();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public List<EventTemplate> getEventTemplates(final User u){
|
||||
return getEventTemplates(u, false);
|
||||
}*/
|
||||
|
||||
}
|
@ -1,8 +1,11 @@
|
||||
package se.su.dsv.scipro.data.dao.jpa;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.GroupEventDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.GroupEvent;
|
||||
|
||||
@Repository("groupEventDao")
|
||||
public class GroupEventDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<GroupEvent> implements GroupEventDao {
|
||||
|
||||
public GroupEventDaoJPAImp(){
|
||||
|
@ -0,0 +1,16 @@
|
||||
package se.su.dsv.scipro.data.dao.jpa;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.GroupEventTemplateDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.GroupEventTemplate;
|
||||
|
||||
@Repository("groupEventTemplateDao")
|
||||
public class GroupEventTemplateDaoJPAImp extends AbstractDaoJPAImp<GroupEventTemplate>
|
||||
implements GroupEventTemplateDao {
|
||||
|
||||
public GroupEventTemplateDaoJPAImp() {
|
||||
super(GroupEventTemplate.class);
|
||||
}
|
||||
|
||||
}
|
@ -16,5 +16,4 @@ public class ProjectClassDaoJPAImp extends AbstractDaoJPAImp<ProjectClass> imple
|
||||
public ProjectClassDaoJPAImp() {
|
||||
super(ProjectClass.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -190,7 +190,7 @@ public class ProjectDaoJPAImp extends AbstractDaoJPAImp<Project> implements Proj
|
||||
throws PersistenceException {
|
||||
String q = "select p " +
|
||||
"from Project p " +
|
||||
"where upper(p.title) LIKE :searchTerm " +
|
||||
"where upper(p.title) LIKE upper(:searchTerm) " +
|
||||
"order by p.title ";
|
||||
|
||||
TypedQuery<Project> query = em.createQuery(q, Project.class);
|
||||
|
@ -1,8 +1,11 @@
|
||||
package se.su.dsv.scipro.data.dao.jpa;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectEventDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectEvent;
|
||||
|
||||
@Repository("projectEventDao")
|
||||
public class ProjectEventDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<ProjectEvent> implements ProjectEventDao {
|
||||
|
||||
public ProjectEventDaoJPAImp() {
|
||||
|
@ -0,0 +1,16 @@
|
||||
package se.su.dsv.scipro.data.dao.jpa;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectEventTemplateDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectEventTemplate;
|
||||
|
||||
@Repository("projectEventTemplateDao")
|
||||
public class ProjectEventTemplateDaoJPAImp extends AbstractDaoJPAImp<ProjectEventTemplate>
|
||||
implements ProjectEventTemplateDao {
|
||||
|
||||
public ProjectEventTemplateDaoJPAImp() {
|
||||
super(ProjectEventTemplate.class);
|
||||
}
|
||||
|
||||
}
|
@ -1,20 +1,11 @@
|
||||
package se.su.dsv.scipro.data.dao.jpa;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.NoResultException;
|
||||
import javax.persistence.PersistenceException;
|
||||
import javax.persistence.TypedQuery;
|
||||
|
||||
import org.springframework.orm.jpa.JpaCallback;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectScheduleDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.Event;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectSchedule;
|
||||
|
||||
@Repository("projectScheduleDao")
|
||||
public class ProjectScheduleDaoJPAImp extends AbstractDaoJPAImp<ProjectSchedule>
|
||||
implements ProjectScheduleDao {
|
||||
|
||||
|
@ -0,0 +1,98 @@
|
||||
package se.su.dsv.scipro.data.dao.jpa;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.NoResultException;
|
||||
import javax.persistence.PersistenceException;
|
||||
import javax.persistence.TypedQuery;
|
||||
|
||||
import org.springframework.orm.jpa.JpaCallback;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ScheduleTemplateDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
import se.su.dsv.scipro.data.dataobjects.ScheduleTemplate;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
|
||||
@Repository("scheduleTemplateDao")
|
||||
public class ScheduleTemplateDaoJPAImp extends AbstractDaoJPAImp<ScheduleTemplate>
|
||||
implements ScheduleTemplateDao {
|
||||
|
||||
public ScheduleTemplateDaoJPAImp() {
|
||||
super(ScheduleTemplate.class);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public List<ScheduleTemplate> getScheduleTemplates(final User creator, final Boolean isSysAdminTemplate,
|
||||
final Boolean active, final ProjectClass projectClass) {
|
||||
return getJpaTemplate().execute(new JpaCallback<List<ScheduleTemplate>>() {
|
||||
public List<ScheduleTemplate> doInJpa(EntityManager em)
|
||||
throws PersistenceException {
|
||||
String selectClause = "select st ";
|
||||
String fromClause = "from ScheduleTemplate st ";
|
||||
String joinClause = "";
|
||||
List<String> conditions = new ArrayList<String>();
|
||||
|
||||
if(isSysAdminTemplate != null){
|
||||
conditions.add("st.isSysAdminTemplate = :isSysAdminTemplate ");
|
||||
}
|
||||
|
||||
if(creator != null){
|
||||
fromClause += ", User u ";
|
||||
joinClause += "join u.roles role ";
|
||||
conditions.add("role = st.creator ");
|
||||
conditions.add("u = :user ");
|
||||
}
|
||||
|
||||
if(active != null){
|
||||
conditions.add("st.active = :active ");
|
||||
}
|
||||
|
||||
if(projectClass != null){
|
||||
conditions.add("st.projectClass = :projectClass ");
|
||||
}
|
||||
|
||||
String cond = "";
|
||||
for(String c : conditions){
|
||||
if(conditions.indexOf(c) == 0)
|
||||
cond += "where " + c;
|
||||
else
|
||||
cond += "and " + c;
|
||||
}
|
||||
|
||||
String q = selectClause + fromClause + joinClause + cond;
|
||||
|
||||
q += " order by st.templateName asc";
|
||||
|
||||
|
||||
TypedQuery<ScheduleTemplate> query = em.createQuery(q, ScheduleTemplate.class);
|
||||
|
||||
if(isSysAdminTemplate != null){
|
||||
query.setParameter("isSysAdminTemplate", isSysAdminTemplate);
|
||||
}
|
||||
|
||||
if(creator != null){
|
||||
query.setParameter("user", creator);
|
||||
}
|
||||
|
||||
if(active != null){
|
||||
query.setParameter("active", active);
|
||||
}
|
||||
|
||||
if(projectClass != null){
|
||||
query.setParameter("projectClass", projectClass);
|
||||
}
|
||||
|
||||
try {
|
||||
return query.getResultList();
|
||||
} catch (NoResultException e) {
|
||||
return new ArrayList<ScheduleTemplate>();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user