DAO Factory?

Olá a todos,
eh o seguinte…
eu to fazendo um “dao factory”, onde eu criei primeiramente uma interface que apenas vai ditar o comportamento de um DAO para o meu sistema. Até aí tudo bem.
Depois eu criei uma classe abstrata que implementa esses comportamentos.
Só que, por exemplo, ao fazer o método “insert”, no meu DAO “específico”, eu fazia isso:
Session session = factory.openSession(); session.save(us); session.flush(); session.close();
Sendo q esse factory eu criei na conexão, assim:
factory = conf.buildSessionFactory();

Como eu tenho q colocar esse factory.openSession na minha classe abstrata, já que esse factory foi criado na minha classe “específica”?

só complementando minha pergunta…
qndo eu faço um session.find() na minha classe “específica”, eu coloco assim: session.find("from br.com.banparanet.intranet.Agencia");
como eu tenho q colocar esse session.find na minha classe abstrata???

Talvez isso te ajude:
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html