-
Spirng JPA 事务上的问题!5
问题描述:
一个库存调拨的相关业务:
库存调拨单,再审核之后,回创建1条出库记录,1条入库记录。
然后我需要在根据这出入库记录,来记录一下 库存的现存量变化。
由于物料信息可能比较多,所以我就写了一个存储过程来处理。
代码:public void onIcAdjustAudit(IcAdjust icAdjust, int billtype){ // 设置值的省略。。。。。 // 保存入库主表 icGeneralHDao.save(icInStore); // 保存出库主表 icGeneralHDao.save(icOutStore); // 设置出\入库单明细 for (IcAdjustB detail : details) { // 保存调拨入库明细 icGeneralBDao.save(icInDetail); // 保存调拨入库明细 icGeneralBDao.save(icOutDetail); } //调用存储过程。更新现存量表 (注:这里的icInStore.getId()是可以打印出来的。但是传递到存储过程执行,却没有预期的返回结果。如果把这个id的值,直接拿到数据库中去执行存储过程,则出现预期效果。 然后尝试,在这里直接把icInStore.getId()替换成"1231231321"这样的字符串。OK,程序达到预期。感觉是整个方法的事务控制方面的问题。) icHandnumManager(icInStore.getId(), null, BillType.APS_ONHANDNUM_METHOD_EXCE); }
public void icHandnumManager(String pkId, String billType, int method) throws Exception { System.out.println("#pkid=" + pkId + ",#method=" + method); String callSql = " {CALL PROC_MANAGER_ONHANDNUM(?,?,?)} "; int i = entityManager.createNativeQuery(callSql) .setParameter(1, pkId) .setParameter(2, billType) .setParameter(3, method) .executeUpdate(); System.out.println("#i=" + i); }
整个Class的事务注解是:
@Transactional(rollbackFor = Exception.class)
我查看了点资料,尝试在存储过程的方法上面添加。
@Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
但是没有用。
参考地址:
http://blog.csdn.net/it_man/article/details/5074371
整个问题怎么解决呢?有高手给指点一下。
2014年9月18日 09:51
目前还没有答案
相关推荐
8. ** Transactions**:Spring Data JPA 使用 Spring 的事务管理支持,可以方便地配置事务边界,确保数据操作的一致性。 9. **JPA Querydsl Support**:Spring Data JPA 还支持 Querydsl,这是一个强大的类型安全的...
5. **事务管理**:Spring Data JPA集成Spring的事务管理,可以方便地在方法级别控制事务的开始、提交、回滚,确保数据一致性。 6. ** auditing**:Spring Data JPA还提供了审计功能,通过`@CreationTimestamp`和`@...
- **事务管理**:Spring JPA与Spring的事务管理集成,提供了声明式事务处理,使得事务管理更加简单。 - **数据源集成**:支持多种数据库,如MySQL、PostgreSQL、Oracle等,只需配置相应的JDBC连接即可。 - **性能...
综上所述,这些文档是学习和精通Spring框架、Spring Data JPA以及JPA的宝贵资源,适合Java开发者尤其是从事企业级应用开发的人员参考学习。通过学习和实践,开发者可以更高效地构建和维护数据库驱动的Java应用程序。
在IT行业中,构建高效、可维护的Web应用是至关重要的,而"Maven+SpringMVC+SpringJPA+Hibernate"的组合就是一个常见的解决方案。这个组合提供了全面的开发工具和技术,帮助开发者快速构建基于Java的Web应用程序。...
8. **事务管理**:Spring Data JPA利用Spring的事务管理能力,通过@Transactional注解实现事务的控制,确保数据操作的一致性。 9. **数据分页与排序**:Spring Data JPA提供了PagingAndSortingRepository接口,支持...
Spring JPA通过提供Repository接口、实体管理、事务处理等特性,极大地提升了开发效率。 1. **Repository接口**:Spring JPA的核心在于Repository接口,这是一个接口模板,允许用户自定义数据操作方法。例如,你...
此外,还需要配置Spring的数据源、事务管理器以及JPA的实体扫描路径。 3. **JPA配置**:JPA的配置主要涉及`persistence.xml`文件,它定义了持久化单元,包括数据源、JPA供应商(如Hibernate)、实体类的包名以及...
Spring Data JPA是Spring生态中的一个强大ORM框架,它极大地提高了Java开发者在处理数据库操作时的效率。Spring Data JPA的主要优点在于其高度的开发效率、成熟的语法结构以及与Spring框架的紧密集成。 1. **开发...
同时,Spring的事务管理也与Spring Data JPA紧密结合,通过@Transactional注解,我们可以声明式地控制事务边界,提高代码的可读性和可维护性。 在实际应用中,我们通常会为每个数据表创建一个对应的Repository接口...
为了确保事务的一致性,通常会使用Spring的@Transactional注解标记在需要事务管理的方法上。这样,Spring会在方法开始时开启事务,方法结束时根据执行情况提交或回滚事务。 在实际开发中,还需要考虑错误处理、日志...
JPA是Java平台上的一个标准,用于管理关系数据库中的对象,它引入了ORM(Object-Relational Mapping)的概念,允许开发者以面向对象的方式处理数据。JPA通过ORM映射文件或者注解将Java实体类与数据库表进行绑定。 ...
Spring Data JPA 集成了Spring 的事务管理,可以很方便地配置全局或方法级别的事务。`@Transactional` 注解用于标记需要进行事务处理的方法。 9. **测试** 使用Spring Boot 的测试框架,可以编写单元测试和集成...
综上所述,这个实例提供了一个完整的Java Web开发环境,展示了如何使用Spring Data JPA、Spring 4.2、Spring MVC和Hibernate 4.3进行数据操作,以及如何利用Maven进行项目管理,同时借助IntelliJ IDEA提升开发效率。...
Spring Data JPA利用Spring的事务管理能力,通过@Transactional注解在方法级别控制事务。这使得开发者能够轻松地处理事务,确保数据的一致性。 六、JPA规范 Spring Data JPA遵循JPA规范,这意味着它可以与其他JPA...
- **事务管理**:Spring Data JPA 结合 Spring 的事务管理,提供了声明式事务控制,使得事务处理更加简单。 - **集成其他 Spring 功能**:与其他 Spring 模块无缝集成,如 Spring Security、Spring Batch 等。 **3....
6. **Integration with Spring Transaction Management**:Spring Data JPA与Spring的事务管理无缝集成,可以方便地进行事务控制。 在实际使用中,我们需要配置Spring Data JPA,这通常涉及到以下步骤: 1. 添加...
在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...