Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package hbm.dao.sessionfactory;
  
  
  import java.util.List;
  
 
 
The Class GenericHibernateDao.

Parameters:
<T> the generic type of the dao object.
<PK> the generic type of the primary key from the dao object.
 
 public class GenericHibernateDao<T extends BaseEntity<PK>, PK extends Serializableimplements
 		SessionFactoryDao<T, PK> {

The serialVersionUID.
 
 	private static final long serialVersionUID = 6551795469182243398L;

The data source.
 
 	private DataSource dataSource;

The jdbc template.
 
The session factory.
 
Placeholder for the current session.
 
 	private static ThreadLocal<SessioncurrentSession = new ThreadLocal<Session>();

Class type.
 
 	@SuppressWarnings("unchecked")
 	private final Class<T> type = (Class<T>) TypeArgumentsUtils.getFirstTypeArgument(GenericHibernateDao.classthis.getClass());

 
 	public Class<T> getType() {
 		return ;
 	}

Gets the data source.

Returns:
the data source
 
 	public DataSource getDataSource() {
 		return ;
 	}

Sets the data source.

Parameters:
dataSource the new data source
 
 	public void setDataSource(DataSource dataSource) {
 		this. = dataSource;
 	}

Gets the jdbc template.

Returns:
the jdbc template
 
 		return ;
 	}

Sets the jdbc template.

Parameters:
jdbcTemplate the new jdbc template
 
 	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this. = jdbcTemplate;
	}

Gets the session factory.

Returns:
SessionFactory Object
	}

Sets the session factory.

Parameters:
sessionFactory the new session factory
	public void setSessionFactory(SessionFactory sessionFactory) {
		this. = sessionFactory;
	}

	public Session getSession() {
		Session session = null;
		try {
catch (HibernateException e) {
			if (.get() == null) {
				setSession(session);
else {
				session = .get();
			}
		}
		return session;
	}

	public void setSession(Session session) {
	}

	public void delete(final PK id) {
	}

	public void delete(final PK idfinal Session session) {
		session.delete(load(id));
	}

	public void delete(final T object) {
		getSession().delete(object);
	}

	public void delete(final T objectfinal Session session) {
		session.delete(object);
	}

	public boolean exists(final PK id) {
		if (id != null) {
			return null != get(id);
		}
		return false;
	}

	public List<T> findAll() {
		return findByCriteria();
	}

	@SuppressWarnings("unchecked")
	public List<T> findByCriteria(final Criterion... criterion) {
		for (Criterion c : criterion) {
			crit.add(c);
		}
		return crit.list();
	}

	@SuppressWarnings("unchecked")
	public List<T> findByExample(final T exampleInstance,
			final String... excludeProperty) {
		Example example = Example.create(exampleInstance);
		for (String exclude : excludeProperty) {
			example.excludeProperty(exclude);
		}
		crit.add(example);
		return crit.list();
	}

	@SuppressWarnings("unchecked")
	public T get(final PK id) {
		return (T) getSession().get(this.id);
	}

	@SuppressWarnings("unchecked")
	public T get(final PK idfinal Session session) {
		return (T) session.get(this.id);
	}

Gets the persitent class.

Returns:
the persitent class.
	public Class<T> getPersistentClass() {
		return this.;
	}

	public Query getQuery(final String hqlQuery) {
		return getSession().createQuery(hqlQuery);
	}

	public Query getQuery(final String queryStringfinal Session session) {
		return session.createQuery(queryString);
	}

	@SuppressWarnings("unchecked")
	public T load(final PK id) {
		return (T) getSession().load(this.id);
	}

	@SuppressWarnings("unchecked")
	public T load(final PK idfinal Session session) {
		return (T) session.load(this.id);
	}

	public void refresh(final T object) {
	}

	@SuppressWarnings("unchecked")
	public PK save(final T object) {
		return (PK) getSession().save(object);
	}

	@SuppressWarnings("unchecked")
	public PK save(final T objectfinal Session session) {
		return (PK) session.save(object);
	}

	public void saveOrUpdate(final T object) {
	}

	public void saveOrUpdate(final T objectfinal Session session) {
		session.saveOrUpdate(object);
	}

	public void update(final T object) {
		getSession().update(object);
	}

	public void update(final T objectfinal Session session) {
		session.update(object);
	}

	public void evict(T object) {
		getSession().evict(object);
	}

	@SuppressWarnings("unchecked")
	public List<T> find(String hqlQueryString[] paramsObject[] paramValues,
			Type[] paramTypesInteger startInteger count) {
		final Query query = getQuery(hqlQuery);
		final int paramsLength = (params == null ? 0 : params.length);
		if (params != null) {
			if (paramValues == null || paramValues.length != params.length) {
						"ParamValues not completely specified for all params");
			}
			if (paramValues == null || paramTypes.length != params.length) {
						"ParamTypes not completely specified for all params");
			}
		}
		for (int i = 0; i < paramsLengthi++) {
			query.setParameter(params[i], paramValues[i], paramTypes[i]);
		}
		if (start == null) {
else {
			query.setFirstResult(start.intValue());
		}
		if (count == null) {
			query.setMaxResults(0);
else {
			query.setMaxResults(count.intValue());
		}
		return query.list();
	}

	@SuppressWarnings("unchecked")
	public T merge(T object) {
		return (T) getSession().merge(object);
	}

	public void delete(List<T> objects) {
		for (T object : objects) {
			delete(object);
		}
	}

	public List<PK> save(List<T> objects) {
		List<PK> primaryKeys = new ArrayList<PK>();
		for (T object : objects) {
			primaryKeys.add(save(object));
		}
		return primaryKeys;
	}

	public void saveOrUpdate(List<T> objects) {
		for (T object : objects) {
			saveOrUpdate(object);
		}
	}

	public void update(List<T> objects) {
		for (T object : objects) {
			saveOrUpdate(object);
		}
	}
	public List<T> merge(List<T> objects) {
		List<T> mergedEntities = new ArrayList<T>();
		for (T object : objects) {
			mergedEntities.add(merge(object));
		}
		return mergedEntities;
	}
New to GrepCode? Check out our FAQ X