Wenn ich dich richtig verstanden haben, ist dein Problem, an welcher Stelle du die konkreten DAOs (die Hibernate kennen) erstellen musst.
Wie
hier beschrieben kann du eine abstrakte Factory benutzen, die du in die Businesslogik hereinreichst.
Die Implementierung der Factory kennt/erstellt dann die Implementierungen der DAOs für Hibernate.
EDIT: Ich bin mir aber nicht sicher, wie sinnvoll es ist, Hibernate bzw. JPA wegzuabstrahieren. Es ist ja schon eine ziemlich gute Abstraktion.