rendered paste bodypublic class AbstractDaoHibernate<T> {
// MEMBERS
private Class entityClass;
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Session getSession() {
return sessionFactory.getCurrentSession();
}
// CONSTRUCTORS
protected AbstractDaoHibernate(Class dataClass)
{
super();
this.entityClass = dataClass;
}
// METHODS
@SuppressWarnings("unchecked")
public T load(Long id) {
return (T)getSession().get(entityClass, id);
}
@SuppressWarnings("unchecked")
public T loadChecked(Long id)
throws EntityNotFoundException
{
T persistedObject = load(id);
if(persistedObject == null) {
throw new EntityNotFoundException(entityClass, id);
}
return persistedObject;
}
public void merge(T detachedObject) {
getSession().merge( detachedObject );
}
public void save(T persistedObject) {
getSession().saveOrUpdate( persistedObject );
}
public void delete(T persistedObject) {
getSession().delete( persistedObject );
}
public void delete(Long id) {
delete(loadChecked(id));
}
}