普通java应用程序中的Spring数据jpa提交?

普通java应用程序中的Spring数据jpa提交?,java,spring,spring-data,spring-data-jpa,Java,Spring,Spring Data,Spring Data Jpa,在普通java应用程序中使用spring和spring数据jpa时,jpa如何知道何时将数据提交到数据库 我这样问是因为repository.save()不提交 我应该手动提交还是spring可以帮我处理 我的应用程序上下文xml: <context:component-scan base-package="..."> </context:component-scan> <jpa:repositories base-package="..." entit

在普通java应用程序中使用spring和spring数据jpa时,jpa如何知道何时将数据提交到数据库

我这样问是因为repository.save()不提交

我应该手动提交还是spring可以帮我处理

我的应用程序上下文xml:

 <context:component-scan base-package="...">
    </context:component-scan>

<jpa:repositories base-package="..." entity-manager-factory-ref="emf"  />



<bean id="emf" class="...spring.MyEMF"></bean>

<!-- Add Transaction support -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="emf" />
</bean>

<!-- Use @Transaction annotations for managing transactions -->
<tx:annotation-driven transaction-manager="transactionManager" />

没有spring可以在方法存储库之前为您处理事务。save()add@Transactional

@Transactional
public void save(){
   //do something
}
在您的配置类中,确保启用了spring事务处理

@EnableTransactionManagement
class myConfig{

}

没有spring可以在方法存储库之前为您处理事务。save()add@Transactional

@Transactional
public void save(){
   //do something
}
在您的配置类中,确保启用了spring事务处理

@EnableTransactionManagement
class myConfig{

}

尝试使用repository.saveAndFlush()尝试使用repository.saveAndFlush()嗯,我好像错了,save()确实提交了。似乎spring数据jpa crud方法(如save)在默认情况下是@transactional的。我已经启用了记录器org.springframework.orm.jpa.JpaTransactionManager来查看详细信息。我需要做一些研究。我很快就会回来的。嗯,看来我错了,save()确实有问题。似乎spring数据jpa crud方法(如save)在默认情况下是@transactional的。我已经启用了记录器org.springframework.orm.jpa.JpaTransactionManager来查看详细信息。我需要做一些研究。我很快就会回来。