【发布时间】:2015-12-26 08:39:09
【问题描述】:
我的事务配置如下,我想知道当前配置是否会在接收并发请求的同时保持数据的完整性和一致性。如果代码没问题,哪些情况下并发请求会影响数据的完整性或一致性?
控制器
@RequestMapping(value = "/process", method = RequestMethod.POST)
public String processNameForm(@ModelAttribute("Form") Form form, Model model)
throws Exception {
System.err.println("Received form details:" + form);
long id = this.formService.saveForm(form);
model.addAttribute("id", id);
return "result";
}
服务
@Transactional
public long saveForm(Form form) throws CannotSaveFormException {
System.err.println("in saveForm of service");
return formRepository.saveForm(form);
}
存储库
@Autowired
SessionFactory sessionFactory;
public long saveForm(Form form) {
return (Long) sessionFactory.getCurrentSession().save(form);
配置
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:8889/Test" />
<property name="username" value="jack" />
<property name="password" value="jack" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
depends-on="dataSource">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.test.model" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.use_sql_comments">true</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">validate</prop>
</props>
</property>
</bean>
<bean
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
【问题讨论】:
标签: spring hibernate spring-mvc spring-transactions