Advertisement
Guest User

Untitled

a guest
May 21st, 2012
481
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.20 KB | None | 0 0
  1. package com.epam.dao.hiberhate;
  2.  
  3. import java.lang.reflect.ParameterizedType;
  4.  
  5. import org.hibernate.SessionFactory;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7.  
  8. import com.epam.dao.BaseDao;
  9.  
  10. @SuppressWarnings("unchecked")
  11. public abstract class GenericDao<T> implements BaseDao<T> {
  12.  
  13.     @Autowired
  14.     protected SessionFactory sessionFactory;
  15.  
  16.     private Class<?> getEntityClass() {
  17.         return ((Class) ((ParameterizedType) getClass().getGenericSuperclass())
  18.                 .getActualTypeArguments()[0]);
  19.     }
  20.  
  21.     public T get(Integer id) {
  22.         return (T) sessionFactory.getCurrentSession()
  23.                 .get( getEntityClass(), id );
  24.     }
  25.  
  26.     public T save(T entity) {
  27.         Integer id = (Integer) sessionFactory.getCurrentSession().save( entity );
  28.         return (T) sessionFactory.getCurrentSession()
  29.                 .get( getEntityClass(), id );
  30.     }
  31.  
  32.     public T update(T entity) {
  33.         sessionFactory.getCurrentSession().update( entity );
  34.         return entity;
  35.     }
  36.  
  37.     public void delete(T entity) {
  38.         sessionFactory.getCurrentSession().delete( entity );
  39.     }
  40.  
  41.     public void delete(Integer id) {
  42.         T entity = (T) sessionFactory.getCurrentSession().get(
  43.                 getEntityClass(), id );
  44.         sessionFactory.getCurrentSession().delete( entity );
  45.     }
  46.  
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement