You can have your actual domain objects implement org.hibernate.classic.Lifecycle although this has been moved to "classic". Make of that as you will 
If you want to use your class then have all domain objects that need the DAO implement an interface:
Code:
interface DAOAware {
setDAO(final DAO theDAO);
}
then in your HibernateLoadListener onLoad do:
Code:
Object myObject = super.onLoad(event, loadType);
if (myObject instanceof DAOAware) {
DAOAware daoAware = (DAOAware)myObject;
daoAware.setDAO(theDAO);
}
return myObject;
You will obviously need to retrieve theDAO from the context in HibernateLoadListener constructor?
Hope this helps.