Sorry, not the expert answer here but I do not see any references to orh.hibernate.Session anywhere in org.jbpm.pvm.internal.session.DbSession.
That's the interface that org.jbpm.pvm.internal.hibernate.DbSessionImpl implements, and that has loads of Hibernate imports and references, but hey, it is a.) an implementation class and b.) it says so in the package name itself, that it is a hibernate implementation of DbSessionImpl.
Dunno how much that helped,
yes, org.jbpm.pvm.internal.hibernate.DbSessionImpl is an implementation of org.jbpm.pvm.internal.session.DbSession, but maybe you don't understand me(my english is so poor).
what I don't understand is that:
the methods #svae/#delete/#flush/... in DbSessionImpl are delegated forward to the corresponding method(same method name) call of org.hibernate.Session, it seems the author would like to see DbSession rather than org.hibernate.Session in this program, but why make it internal? and, in modules like pvm/jpdl/enterprise, I found lots of references to org.hibernate.Session directory(in some commands, activities, etc.), which are retrived from the Environment, why not using DbSession instead?
it's not the intention to have an interface to plug a different persistence layer.
but it is still a work in progress. don't know yet how it is going to look like in the end.
goal is to have central access to all the queries.
we might consider switch to jpa later on.