0 0

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
目前还没有答案

相关推荐

    Spring Data JPA中文文档[1.4.3]_springdatajpa_erlang_waitxpf_

    8. ** Transactions**:Spring Data JPA 使用 Spring 的事务管理支持,可以方便地配置事务边界,确保数据操作的一致性。 9. **JPA Querydsl Support**:Spring Data JPA 还支持 Querydsl,这是一个强大的类型安全的...

    Spring Data JPA 笔记

    5. **事务管理**:Spring Data JPA集成Spring的事务管理,可以方便地在方法级别控制事务的开始、提交、回滚,确保数据一致性。 6. ** auditing**:Spring Data JPA还提供了审计功能,通过`@CreationTimestamp`和`@...

    spring jpa

    - **事务管理**:Spring JPA与Spring的事务管理集成,提供了声明式事务处理,使得事务管理更加简单。 - **数据源集成**:支持多种数据库,如MySQL、PostgreSQL、Oracle等,只需配置相应的JDBC连接即可。 - **性能...

    spring注解+spring data jpa文档+JPA文档.rar

    综上所述,这些文档是学习和精通Spring框架、Spring Data JPA以及JPA的宝贵资源,适合Java开发者尤其是从事企业级应用开发的人员参考学习。通过学习和实践,开发者可以更高效地构建和维护数据库驱动的Java应用程序。

    maven+springmvc+springjpa+hibernate

    在IT行业中,构建高效、可维护的Web应用是至关重要的,而"Maven+SpringMVC+SpringJPA+Hibernate"的组合就是一个常见的解决方案。这个组合提供了全面的开发工具和技术,帮助开发者快速构建基于Java的Web应用程序。...

    Spring Data JPA从入门到精通

    8. **事务管理**:Spring Data JPA利用Spring的事务管理能力,通过@Transactional注解实现事务的控制,确保数据操作的一致性。 9. **数据分页与排序**:Spring Data JPA提供了PagingAndSortingRepository接口,支持...

    Spring JPA 配置类包集合 方便大家使用

    Spring JPA通过提供Repository接口、实体管理、事务处理等特性,极大地提升了开发效率。 1. **Repository接口**:Spring JPA的核心在于Repository接口,这是一个接口模板,允许用户自定义数据操作方法。例如,你...

    Struts2 Spring Jpa 配置测试

    此外,还需要配置Spring的数据源、事务管理器以及JPA的实体扫描路径。 3. **JPA配置**:JPA的配置主要涉及`persistence.xml`文件,它定义了持久化单元,包括数据源、JPA供应商(如Hibernate)、实体类的包名以及...

    Spring Data JPA的优点和难点.pdf

    Spring Data JPA是Spring生态中的一个强大ORM框架,它极大地提高了Java开发者在处理数据库操作时的效率。Spring Data JPA的主要优点在于其高度的开发效率、成熟的语法结构以及与Spring框架的紧密集成。 1. **开发...

    springdatajpa 包括jar包

    同时,Spring的事务管理也与Spring Data JPA紧密结合,通过@Transactional注解,我们可以声明式地控制事务边界,提高代码的可读性和可维护性。 在实际应用中,我们通常会为每个数据表创建一个对应的Repository接口...

    spring mvc spring spring jpa集成

    为了确保事务的一致性,通常会使用Spring的@Transactional注解标记在需要事务管理的方法上。这样,Spring会在方法开始时开启事务,方法结束时根据执行情况提交或回滚事务。 在实际开发中,还需要考虑错误处理、日志...

    Spring JPA Example

    JPA是Java平台上的一个标准,用于管理关系数据库中的对象,它引入了ORM(Object-Relational Mapping)的概念,允许开发者以面向对象的方式处理数据。JPA通过ORM映射文件或者注解将Java实体类与数据库表进行绑定。 ...

    Spring Data JPA Demo

    Spring Data JPA 集成了Spring 的事务管理,可以很方便地配置全局或方法级别的事务。`@Transactional` 注解用于标记需要进行事务处理的方法。 9. **测试** 使用Spring Boot 的测试框架,可以编写单元测试和集成...

    2017 spring data jpa+spring4.2+springmvc+hibernate4.3 maven环境intellij idea增删改查实例

    综上所述,这个实例提供了一个完整的Java Web开发环境,展示了如何使用Spring Data JPA、Spring 4.2、Spring MVC和Hibernate 4.3进行数据操作,以及如何利用Maven进行项目管理,同时借助IntelliJ IDEA提升开发效率。...

    spring-data-JPA帮助文档

    Spring Data JPA利用Spring的事务管理能力,通过@Transactional注解在方法级别控制事务。这使得开发者能够轻松地处理事务,确保数据的一致性。 六、JPA规范 Spring Data JPA遵循JPA规范,这意味着它可以与其他JPA...

    Spring Data JPA.zip

    - **事务管理**:Spring Data JPA 结合 Spring 的事务管理,提供了声明式事务控制,使得事务处理更加简单。 - **集成其他 Spring 功能**:与其他 Spring 模块无缝集成,如 Spring Security、Spring Batch 等。 **3....

    spring学习:spring data jpa

    6. **Integration with Spring Transaction Management**:Spring Data JPA与Spring的事务管理无缝集成,可以方便地进行事务控制。 在实际使用中,我们需要配置Spring Data JPA,这通常涉及到以下步骤: 1. 添加...

    手动创建 SpringMvc +SpringDataJpa+Hibernate+ freemarker mavenProject+ 环境切换 webDemo

    在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...

Global site tag (gtag.js) - Google Analytics