/*
* Schuelerprojekt: Taschengeldboerse
* Sybit GmbH - www.sybit.de - Apache License, Version 2.0
* https://github.com/Sybit-Education/taschengeldboerse
*/
package com.sybit.education.taschengeldboerse.repository;
import com.sybit.education.taschengeldboerse.domain.Job;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Root;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
/**
*
* @author tsa
*/
@Repository
@Transactional
public class JobRepositoryImpl implements JobRepositoryCustom {
@Autowired
private EntityManager entityManager;
@Override
public List<Job> notassignedList() {
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Job> cq = cb.createQuery(Job.class);
Root<Job> job = cq.from(Job.class);
Expression<Integer> schueler = job.get("schueler");
cq.select(job).where(cb.isNull(schueler)).orderBy(cb.desc(job.get("erstelldatum")));
Query query = entityManager.createQuery(cq);
List<Job> jobListe = query.getResultList();
return jobListe;
}
@Override
public List<Job> findByAnbieter(Integer anbieterId) {
System.out.println("anbieterId= " + anbieterId);
List<Job> jobListe = new ArrayList<>();
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Job> cq = cb.createQuery(Job.class);
Root<Job> job = cq.from(Job.class);
Expression<Integer> anbieter = job.get("anbieter");
cq.select(job).where(cb.equal(anbieter, anbieterId));
Query query = entityManager.createQuery(cq);
jobListe = query.getResultList();
return jobListe;
}
@Override
public List<Job> schuelerJobs(Integer schuelerID) {
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Job> cq = cb.createQuery(Job.class);
Root<Job> job = cq.from(Job.class);
Expression<Integer> schueler = job.get("schueler");
cq.select(job).where(cb.equal(schueler, schuelerID));
Query query = entityManager.createQuery(cq);
List<Job> schuelerJobsListe = query.getResultList();
return schuelerJobsListe;
}
}