Rop与jdbcTemplate整合怎么搞?
rstornado
2012-09-21
我调整了bean的装载顺序,rop启动正常。下面做些测试看看。请问能分享一下
風一樣的男子 你的具体解决方案吗? |
|
風一樣的男子
2012-09-21
rstornado 写道 我调整了bean的装载顺序,rop启动正常。下面做些测试看看。请问能分享一下
風一樣的男子 你的具体解决方案吗? 我现在是加多了一层bean注解为@Service 注入给Rop Service使用 不过一直想省掉那一层,因为这样子Rop 框架异常(非业务异常)的话还是会访问DB 因为我们的逻辑肯定是在返回 response 之前的,而如果 返回 response 的时候异常这样就没法做到事物控制 你说的调子bean加载顺序是怎样的? |
|
idifei24
2012-09-22
我调整了bean的装载顺序,rop启动正常。下面做些测试看看。请问能分享一下
風一樣的男子 你的具体解决方案吗?[/ 请问是怎样调整? |
|
rstornado
2012-09-24
不好意思,之前是启动成功,但是事实上逻辑是有问题的。现在dao和entity的事情搞定了,service还在努力中。由于service类增加了实现接口之后会报错,所以准备用cglib代理的方式配置事务。
|
|
風一樣的男子
2012-09-24
rstornado 写道 不好意思,之前是启动成功,但是事实上逻辑是有问题的。现在dao和entity的事情搞定了,service还在努力中。由于service类增加了实现接口之后会报错,所以准备用cglib代理的方式配置事务。
我是这么搞的 RopService->Action(注解@Service,事务控制在这里)->Dao 实际上调用Action后RopService返回响应前异常是没问题的 证明该做的事都正常通过了,只是正常响应处理有问题而已,因为错误的响应是在拦截器或是Action逻辑里做的,比如账号不存在,密码错误什么的 |
|
rstornado
2012-09-24
你的做法原理上没问题,但是如果业务场景要求openSessionInView模式实现,那么事务最好是跟session在同一级别。
|
|
rstornado
2012-09-25
请问能共享一下你的代码么?我按照你的策略去做没有成功,接口被调用的时候找不到事务。
|
|
風一樣的男子
2012-09-25
rstornado 写道 你的做法原理上没问题,但是如果业务场景要求openSessionInView模式实现,那么事务最好是跟session在同一级别。
你把这个openSessionInView理解错了吧?这是为解决ORM延时加载诞生的 |
|
風一樣的男子
2012-09-25
rstornado 写道 请问能共享一下你的代码么?我按照你的策略去做没有成功,接口被调用的时候找不到事务。
@Repository public class AccountDaoImpl extends DaoImpl implements AccountDao<Account> { /// } @Service @Transactional(propagation=Propagation.SUPPORTS,readOnly=true) public class AccountActionImpl implements AccountAction<Account> { @Resource private AccountDao<Account> dao; @Transactional(propagation=Propagation.SUPPORTS,readOnly=false) @Override public void register(String email, String password, String nickName) { dao.register(email, password, nickName); } } @ServiceMethodBean(version = "1.0") public class AccountService { @Resource private AccountAction<Account> action; @ServiceMethod(method = "account.register",version = "1.0", httpAction=HttpAction.POST) public Object register(RegisterAccountRequest request) throws Exception{ String email=request.getEmail(); String password=request.getPassword(); // 密码加密 // 二次加密 action.register(email, password, request.getNickName()); return CommonRopResponse.SUCCESSFUL_RESPONSE; } } <!-- 定义事务处理类,不同的数据访问方式,事务处理类不同 比如:Hibernate操作的HibernateTransactionManager,JDBC操作的使用DataSourceTransactionManager --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 声明使用注解式事务 --> <tx:annotation-driven transaction-manager="transactionManager" /> |
|
rstornado
2012-09-25
我的做法和你的几乎一样,但是就是不行,报错为:Caused by: org.hibernate.HibernateException: save is not valid without active transaction,应该是无法打开事务,整理很久都不行。请问能不能把你的工程发我一份?barlos@tom.com
|
相关讨论
相关资源推荐
- MatData Ver 1.02:使用 MATLAB 支持的外部函数在 Fortran 90/95 中读取/写入 .mat 数据文件。-matlab开发
- library not found for -lprotobuf
- [转载]Matlab与Fortran的交互--基本概念
- MATLAB调用Fortran
- matlab执行fortran文件,用于把fortran代码转换成matlab的m文件代码 最新版3.0
- matlab调用 fortran,matlab和fortran混合编程
- jy-11-AJAX--承租红+成恒
- ajax编程
- WEB标签(struts1、struts2、jstl、freemarker、velocity、jsf、ajax、js各种标签)
- struts2标签详解