分布式的事务回滚怎么处理?

超凡程序猿 发布于 2016/12/28 11:46
阅读 1K+
收藏 0

@JFinal 你好,想跟你请教个问题:我在server端对暴露的Service接口进行增强,然后在Service端方法前加@Before(Tx.class),然后在数据库保存操作后进行抛出异常,但是数据没有回滚,我也发现Tx拦截器根本没有执行,请波总指导一下,谢谢

service

@Override
@Before(Tx.class)
public void save() {
User user = new User();
user.setUserEmail("546059321@qq.com");
user.save();
user = null;
user.update();
}
server

@Before(IocInterceptor.class)

@ControllerBind(controllerKey = "/", viewPath = "/index")

public class IndexController extends Controller {
@Inject.BY_NAME_ENHANCE
UserService userService;


public void index() {
userService.save();
renderText("123");
}
}
ioc改动后的

if (field.isAnnotationPresent(Inject.BY_NAME.class))
bean = IocInterceptor.ctx.getBean(field.getName());
else if (field.isAnnotationPresent(Inject.BY_NAME_ENHANCE.class))
bean = Enhancer.enhance(ctx.getBean(field.getName()));
else
continue;

config

@Override
public void configPlugin(Plugins me) {
ActiveRecordPlugin.useAsDataTransfer(new com.jfinal.plugin.activerecord.dialect.MysqlDialect(),
IContainerFactory.defaultContainerFactory, RedisCache.me);
// 缓存user模块 到 redis,默认存储2000秒
redisMainCacheName = PropKit.get("redis_main_cache_name");
RedisPlugin userRedis = new RedisPlugin(redisMainCacheName, PropKit.get("redis_cache_host"), PropKit.getInt(
"redis_cache_port", 6379), PropKit.get("redis_cache_pwd"));
userRedis.setSerializer(JdkSerializer.me);
me.add(userRedis);
// 配置Spring插件
SpringPlugin sp = new SpringPlugin(PathKit.getRootClassPath() + "\\spring\\application.xml");
me.add(sp);
}


加载中
0
idreamblue
idreamblue
首先分布式事务应该不在jfinal的范畴,其次代码和分布式回滚貌似没有直接的说明关系啊。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部