第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將事務(wù)傳播到 Forkjoin 提交

將事務(wù)傳播到 Forkjoin 提交

四季花海 2022-12-15 17:05:39
我正在創(chuàng)建一個(gè)具有多個(gè)線程的 ForkJoinPool 來并行執(zhí)行一個(gè)流,它是從 jpa 中的查詢執(zhí)行的,但是我在將事務(wù)傳播到 ForkJoinPool 的方法提交時(shí)遇到了問題。@Transactional(readOnly = true)public void streamTest() {    ForkJoinPool customThreadPool = new ForkJoinPool(20);    try {    customThreadPool.submit(() ->         priceRepository.streamAll()         .parallel()         .map(p -> this.transform(p))         .forEach(System.out::println)         ).get();    } catch (InterruptedException | ExecutionException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }}我收到錯(cuò)誤消息:“您正在嘗試在沒有保持連接打開的周圍事務(wù)的情況下執(zhí)行流式查詢方法,以便實(shí)際上可以使用流。確保使用流的代碼使用@Transactional 或任何其他方式聲明一個(gè)(只讀)事務(wù)?!比绻胰∠?ForkJoinPool 來執(zhí)行流,它工作正常。如何將事務(wù)(只讀)傳播到從 ForkJoinPool 提交的方法的執(zhí)行,有沒有辦法?
查看完整描述

1 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊

我發(fā)現(xiàn)了如何在 ForkJoinPool 的任務(wù)中設(shè)置事務(wù)。我只需像下面那樣使用 TransactionSynchronizationManager。


@Transactional(readOnly = true)

public void streamTest() {

ForkJoinPool customThreadPool = new ForkJoinPool(20);

try {

customThreadPool.submit(() -> {

    TransactionSynchronizationManager.setActualTransactionActive(true);

    TransactionSynchronizationManager.setCurrentTransactionReadOnly(true);

    TransactionSynchronizationManager.initSynchronization();

     priceRepository.streamAll()

     .parallel()

     .map(p -> this.transform(p))

     .forEach(System.out::println);

     }).get();

} catch (InterruptedException | ExecutionException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

}

}


查看完整回答
反對(duì) 回復(fù) 2022-12-15
  • 1 回答
  • 0 關(guān)注
  • 121 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)