package li.dao; import java.sql.Connection; import li.annotation.Inject; import li.dao.test._User; import li.people.record.Account; import li.test.BaseTest; import li.util.Convert; import li.util.Log; import org.junit.Test; public class TransTest extends BaseTest { private static final Log log = Log.init(); @Inject Account accountDao; @Inject _User userDao; // @Test public void rollback() { new Trans() { public void run() { userDao.update("SET flag='a' WHERE true"); userDao.update("SET flag='a' WHERE true"); } }; } // @Test public void norollback() { userDao.update("SET flag='a' WHERE true"); userDao.update("SET flag='a' WHERE true"); } @Test public void test1() { log.debug(new Trans(Convert.toMap("inpar", "inpar---", "1", "2", "3", "4"), Connection.TRANSACTION_REPEATABLE_READ, false) { public void run() { userDao.updateIgnoreNull(new _User().set("id", 2).set("username", "u-1" + System.currentTimeMillis()).set("password", "p-1").set("email", "e-1").set("status", 1)); userDao.updateIgnoreNull(new _User().set("id", 2).set("username", "u-2" + System.currentTimeMillis()).set("password", "p-2").set("email", "e-2").set("status", 1)); map().put("outpar", "outpar---"); log.debug(map().get("inpar")); } }.map().get("outpar")); } @Test public void testMultipleTrans() { log.debug("li.dao._User.testMultipleTrans2()"); userDao.testMultipleTrans2(); } @Test public void testPassValue() { _User user = (_User) new Trans(Convert.toMap("email", "tom@w.cn", "username", "xiaoming"), Connection.TRANSACTION_REPEATABLE_READ, false) { public void run() { userDao.update("SET email=#email WHERE username=#username", map()); map().put("user", userDao.find("WHERE username!=? LIMIT 1", map().get("username"))); } }.map().get("user"); log.debug(user); Boolean flag = new Trans() { public void run() { userDao.update("SET email='li@w.cn' WHERE 1=2", map()); } }.success(); log.debug(flag); } @Test public void testTrans() { new Trans() { public void run() { log.debug("trans 1 start"); accountDao.list(page.setPageSize(5)); new Trans() { public void run() { log.debug("trans 2 start"); accountDao.list(page.setPageSize(5)); new Trans() { public void run() { log.debug("trans 3 start"); accountDao.list(page.setPageSize(5)); log.debug("trans 3 end"); } }; accountDao.list(page.setPageSize(5)); log.debug("trans 2 end"); } }; accountDao.list(page.setPageSize(5)); log.debug("trans 1 end"); } }; } }