#1: We have not mapped out any migration path(s) yet since the requirements are not complete yet.
#2: Good ideas – I will take a look at Hib in Action stuff. For now, there should be nothing stopping you from subclassing (or directly modifying) the HibernateSessionFactory class that ME generates to add the ThreadLocal for transactions. As for InfrastructureException – this is a contentious one, battle between folks who prefer that all exceptions be RuntimeExceptions, and those who think using caught exceptions is ok. I do not think we want to get into this battle – if you want, you can write a delegate class to transform exceptions thrown by calls to the session factory class to RTExceptions.
I prefer the way Spring Framework does their Hibernate integration – concepts of DAOSupport, injection of a session, and using templates to perform persistence operations (you do not do the begin/commit/rollback/close calls, just provide the innards). We will see which approach seems more sensible as we progress with requirements definition.