Advertisement
Guest User

Untitled

a guest
Jul 16th, 2015
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.40 KB | None | 0 0
  1. package org.softlog.autopark.dao.hibernate;
  2.  
  3. import java.io.Serializable;
  4. import java.util.List;
  5.  
  6. import org.hibernate.Criteria;
  7. import org.hibernate.ObjectNotFoundException;
  8. import org.hibernate.Query;
  9. import org.hibernate.Session;
  10. import org.hibernate.SessionFactory;
  11. import org.hibernate.criterion.Order;
  12. import org.softlog.autopark.dao.GenericDao;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Repository;
  15.  
  16. @Repository
  17. public class HibernateDao <T, PK extends Serializable> implements GenericDao <T, PK> {
  18.     @Autowired
  19.     private SessionFactory sessionFactory;
  20.  
  21.     protected Class<? extends T> model;
  22.  
  23.     protected Session getSession() {
  24.         return sessionFactory.getCurrentSession();
  25.     }
  26.  
  27.     public Class<? extends T> getModel() {
  28.         return model;
  29.     }
  30.  
  31.     public void setModel(Class<? extends T> model) {
  32.         this.model = model;
  33.     }
  34.  
  35.     @Override
  36.     public T create(T obj) {
  37.         T result = obj;
  38.         getSession().save(result);
  39.         return result;
  40.     }
  41.  
  42.     @Override
  43.     public void delete(T obj) {
  44.         getSession().delete(obj);
  45.     }
  46.  
  47.     @SuppressWarnings("unchecked")
  48.     @Override
  49.     public T find(PK id) {
  50.         T result;
  51.         try {
  52.             result = (T) getSession().get(model, id);
  53.         } catch (ObjectNotFoundException e) {
  54.             throw new IllegalArgumentException();
  55.         }
  56.  
  57.         return result;
  58.     }
  59.  
  60.     @Override
  61.     public void update(T obj) {
  62.         getSession().update(obj);
  63.     }
  64.  
  65.     @SuppressWarnings("unchecked")
  66.     @Override
  67.     public List<T> list(String property, boolean ascending) {
  68.         Criteria criteria = getSession().createCriteria(model);
  69.         if (ascending)
  70.             criteria.addOrder(Order.asc(property));
  71.         else
  72.             criteria.addOrder(Order.desc(property));
  73.  
  74.         List<T> result = criteria.list();
  75.  
  76.         return result;
  77.     }
  78.  
  79.     @SuppressWarnings("unchecked")
  80.     @Override
  81.     public List<T> list() {
  82.         List<T> result = getSession().createCriteria(model).list();
  83.  
  84.         return result;
  85.     }
  86.  
  87.     @SuppressWarnings("unchecked")
  88.     public List<T> list(String namedQuery, Object[] arguments) {
  89.         Query query = getSession().getNamedQuery(namedQuery);
  90.  
  91.         for (int i = 0; i < arguments.length; i++)
  92.             query.setParameter(i, arguments[i]);
  93.  
  94.         return query.list();
  95.     }
  96.  
  97.     public int update(String namedQuery, Object[] arguments) {
  98.         Query query = getSession().getNamedQuery(namedQuery);
  99.  
  100.         for (int i = 0; i < arguments.length; i++)
  101.             query.setParameter(i, arguments[i]);
  102.  
  103.         return query.executeUpdate();
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement