gpt4 book ai didi

java - 没有 Hibernate Session 绑定(bind)到线程,并且配置不允许在此处创建非事务性 session

转载 作者:IT老高 更新时间:2023-10-28 21:18:40 24 4
gpt4 key购买 nike

这个错误是关于什么的? “没有绑定(bind)到线程的 hibernate session ,并且配置不允许在此处创建非事务性 session ”。我的 spring 配置文件看起来像这样。

<bean id="jndiDataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:/devDS</value>
</property>
</bean>
<bean id="stsaDBFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="jndiDataSource" />
<property name="annotatedClasses">
<list>
<value>xx.yy.zz.User</value>
<value>xx.yy.UserResponse</value>

</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbmddl.auto">create</prop>
</props>
</property>
</bean>

<!-- ################################### Aspects ################################################## -->

<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="stsaDBFactory" />
</property>
</bean>

当我使用 junit 在容器外测试它们时,所有 DAO 测试都通过了。当我将它作为门户应用程序部署在 jBoss 中时,我得到了这个异常。如果我删除特定于门户的配置并使其成为一个简单的 Web 应用程序并将其部署在 jboss 上,它也可以正常工作。有什么想法吗?

最佳答案

您已经在 spring 配置中定义了一个 TransactionManager,但您正试图以非事务性方法执行 hibernate 查询。尝试将@Transactional 添加到您的方法或类中。

关于java - 没有 Hibernate Session 绑定(bind)到线程,并且配置不允许在此处创建非事务性 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3289979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com