Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring和Hibernate保存不工作_Spring_Hibernate_Struts2 - Fatal编程技术网

Spring和Hibernate保存不工作

Spring和Hibernate保存不工作,spring,hibernate,struts2,Spring,Hibernate,Struts2,我使用的是Hibernate和Spring3.0,我试图将值保存到数据库中,但当我看到控制台时,唯一的选择查询显示insert或update不显示,save不起作用 我创建了一个SessionFactorybean并将其注入到Impl中 <bean id="GetStartedDAOBean" class="com.sample.dao.impl.GetStartedDAOImpl" > <property name="sessionfactory"

我使用的是Hibernate和Spring3.0,我试图将值保存到数据库中,但当我看到控制台时,唯一的选择查询显示insert或update不显示,save不起作用

我创建了一个SessionFactorybean并将其注入到Impl中

 <bean id="GetStartedDAOBean" class="com.sample.dao.impl.GetStartedDAOImpl" >
            <property name="sessionfactory" ref="sessionFactory">
            </property>
    </bean

<bean id="GetStartedActionBean" class="com.sample.action.GetStartedAction">
        <property name="getStartedDAOImpl" ref="GetStartedDAOBean"></property>
        <property name="industryDAOImpl" ref="IndustryDAOBean"></property>
        <property name="stateDAOImpl" ref="stateDAOBean"></property>
    </bean>
调试时,sessionFactory中有值,但它不保存任何值。并且也不显示任何插入的查询。没有错误


任何人都可以帮助我吗?

在方法中尝试使用
@Transactional
,并将以下内容添加到您的XML中:


打开会话(在内存中)并将某些内容保存到其中,但只有在
flush()时会话才会保存到数据库中。做一个

Session session = sessionfactory.openSession();
session.saveOrUpdate(customer);
session.flush();

另一种方法是提交事务,因此Hibernate将自动调用
flush()

您已经给出了服务类的方法,并且
您必须在
applicationon context.xml
文件中给出


因此,当任何人调用服务类的方法时,Transaction将由spring启动,它将处理提交和回滚。

我必须给出@Transactionalwhere you calling save()method这与PSR的答案相同。正确,但除此之外,我还提到@Transactionl必须放在服务类上。它应该是“@Transactional”和“应用程序上下文”。而且,您只是复制了PSR的答案。
Session session = sessionfactory.openSession();
session.saveOrUpdate(customer);
session.flush();