私は、Spring 3.0.5、Hibernate 3.3、およびgeneric-hibernate-daoで作業しています。私はBaseDAOImplを作成し、以下のようにドメインDAOを拡張しましたハイバーネーションセッションは、汎用ハイバーネイト - ダオライブラリのスレッドにバインドされていません。
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean?">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="packagesToScan" value="com.xxx.re.admin.model" /> <property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.hbm2ddl.auto">validate</prop>
</props>
</property>
</bean>
<!-- Transaction manager for a single Hibernate SessionFactory? (alternative
to JTA) -->
<tx:annotation-driven />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager?">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
:以下のように私は、HibernateのSessionFactoryを設定した
public class BaseDAOImpl<T, ID extends Serializable> extends GenericDAOImpl<T, ID> {
@Autowired @Override public void setSessionFactory(SessionFactory? sessionFactory) {
super.setSessionFactory(sessionFactory);
}
}
@Repository public class LocaleDAOImpl extends BaseDAOImpl<Locale, Long> implements LocaleDAO {
}
私の春コントローラ(dao.findAll()
を呼び出す)にアクセスするには、私が取得します次のエラー:それはあなたのコントローラの間の中間である場合
org.hibernate.HibernateException?:
No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here.
ねえ、おかげでたくさん。これで一日中苦労している。 –