Оказалось, что все довольно просто, намного проще, чем перехватчики, АОП и множество странностей, которые можно найти по всему интернету.Вставьте этот фрагмент (обратите внимание на мой маленький комментарий во втором init-param) в ваш web.xml, чтобы забыть все ваши проблемы.
<!-- Hibernate OpenSession Filter -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>***WhateverTheNameOfYourSessionFactoryBeanIs***</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>