首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过加速手动处理事务

通过加速手动处理事务
EN

Stack Overflow用户
提问于 2017-06-01 21:41:13
回答 1查看 80关注 0票数 1

是否可以使用Speedment手动处理事务?我想在单个事务中做许多插入或更新。

示例代码的默认行为:

代码语言:javascript
复制
    for (int i = 0; i < 10000; i++) {
        Entry e = new EntryImpl()
                .setEntrytime(new Timestamp(System.currentTimeMillis()))
                .setUserId(janek.getId())
                .setDoor(rnd.nextInt(32))
                .setUid(UUID.randomUUID().toString());
        entries.persist(e);
    }

是:

代码语言:javascript
复制
2017-06-01T13:15:11, 24, Query, SET autocommit=0
2017-06-01T13:15:11, 24, Prepare, INSERT INTO `speed`.`entry` (`id`,`entrytime`,`user_id`,`uid`,`door`) VALUES (?,?,?,?,?)
2017-06-01T13:15:11, 24, Execute, INSERT INTO `speed`.`entry` (`id`,`entrytime`,`user_id`,`uid`,`door`) VALUES (0,'2017-06-01 15:15:11',14,'e5cab887-2373-4a19-b8e7-cc914c4d41c4',5)
2017-06-01T13:15:11, 24, Close stmt, 
2017-06-01T13:15:11, 24, Query, commit
2017-06-01T13:15:11, 24, Query, SET autocommit=0
2017-06-01T13:15:11, 24, Prepare, INSERT INTO `speed`.`entry` (`id`,`entrytime`,`user_id`,`uid`,`door`) VALUES (?,?,?,?,?)
2017-06-01T13:15:11, 24, Execute, INSERT INTO `speed`.`entry` (`id`,`entrytime`,`user_id`,`uid`,`door`) VALUES (0,'2017-06-01 15:15:11',14,'79d38492-9952-485f-ab03-ff5654d6c78e',9)
2017-06-01T13:15:11, 24, Close stmt, 
2017-06-01T13:15:11, 24, Query, commit
2017-06-01T13:15:11, 24, Query, SET autocommit=0
2017-06-01T13:15:11, 24, Prepare, INSERT INTO `speed`.`entry` (`id`,`entrytime`,`user_id`,`uid`,`door`) VALUES (?,?,?,?,?)
2017-06-01T13:15:11, 24, Execute, INSERT INTO `speed`.`entry` (`id`,`entrytime`,`user_id`,`uid`,`door`) VALUES (0,'2017-06-01 15:15:11',14,'ce210b3a-47ac-4c9a-bec9-748a4828843a',13)
2017-06-01T13:15:11, 24, Close stmt, 
EN

回答 1

Stack Overflow用户

发布于 2020-01-17 03:11:47

事实上,您可以:

代码语言:javascript
复制
TransactionComponent transactionComponent =app.getOrThrow(TransactionComponent.class);
TransactionHandler txHandler = transactionComponent.createTransactionHandler();


txHandler.createAndAccept(tx -> {

   for (int i = 0; i < 10000; i++) {
        Entry e = new EntryImpl()
                .setEntrytime(new Timestamp(System.currentTimeMillis()))
                .setUserId(janek.getId())
                .setDoor(rnd.nextInt(32))
                .setUid(UUID.randomUUID().toString());
        entries.persist(e);
    }

            }
        )
    );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44309202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档