Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.auroradev.auroraserver.storage;
- import org.hibernate.Session;
- import javax.persistence.criteria.CriteriaBuilder;
- import javax.persistence.criteria.CriteriaQuery;
- import javax.persistence.criteria.Root;
- import java.util.List;
- public class QueryBuilder<T> {
- private Session session;
- private CriteriaBuilder criteriaBuilder;
- private CriteriaQuery<T> criteriaQuery;
- private Root root;
- public QueryBuilder(Session session, Class<T> tClass) {
- this.session = session;
- criteriaBuilder = session.getCriteriaBuilder();
- criteriaQuery = criteriaBuilder.createQuery(tClass);
- root = criteriaQuery.from(tClass);
- }
- public QueryBuilder<T> where(String property, Object value) {
- criteriaQuery = criteriaQuery.where(criteriaBuilder.equal(root.get(property), value));
- return this;
- }
- public QueryBuilder<T> orderBy(String property, String direction) {
- switch (direction.toLowerCase()) {
- case "asc":
- criteriaQuery = criteriaQuery.orderBy(criteriaBuilder.asc(root.get(property)));
- return this;
- case "desc":
- criteriaQuery = criteriaQuery.orderBy(criteriaBuilder.desc(root.get(property)));
- return this;
- }
- return this;
- }
- public T getSingleResult() {
- return session.createQuery(criteriaQuery).getSingleResult();
- }
- public List<T> getResultSet() {
- return session.createQuery(criteriaQuery).list();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement