jfinal的事务控制 Db.tx 默认是对主数据源应用事务,如果在 run 方法内用 Db.use(...) 切换到另一个数据源,事务将不会生效,解决办法是,在 Db.tx 时指定数据源与内部的 Db.use(...) 数据源一致,Db.tx 方法可以指定数据源 指定方法为 Db.use(...).tx(...)
Db.use("dataSource").tx(new IAtom(){
@Override
public boolean run() throws SQLException {
try {
//do something
} catch (Exception e) {
return false;
}
return true;
}
});