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

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

無法初始化代理 - 沒有會(huì)話,在 Spring 攔截器內(nèi)

無法初始化代理 - 沒有會(huì)話,在 Spring 攔截器內(nèi)

www說 2022-10-07 17:36:40
我的配置中有一個(gè)攔截器,我想禁止訪問其他用戶的資源。在 WebMvcConfig(實(shí)現(xiàn) WebMvcConfigurer)中,我有:@Overridepublic void addInterceptors(InterceptorRegistry registry) {    registry.addInterceptor(new FolderInterceptor(userService, folderService))            .addPathPatterns(Mapping.FOLDER_MAPPING + "/{id}",                    Mapping.UPDATE_FOLDER_MAPPING + "/{id}",                    Mapping.DELETE_FOLDER_MAPPING + "/{id}",                    Mapping.DOWNLOAD_FOLDER_MAPPING + "/{id}");}在我的 FolderInterceptor 中,我有一個(gè) preHandle 方法獲取訪問的文件夾并檢查其所有者:Map pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);Long id = Long.valueOf((String) pathVariables.get("id"));User user = userService.getLoggedAccount();if (folderService.existsById(id)) {    Folder folder = folderService.findById(id);    if (folder.getOwner().getId().equals(user.getId())) {        return true;    }    else {        response.sendError(403, "Unauthorized");        return false;    }}else {    response.sendError(404, "Folder does not exist");    return false;}如果我打印文件夾對象,我在該行有同樣的錯(cuò)誤。org.hibernate.LazyInitializationException: could not initialize proxy.謝謝您的幫助。
查看完整描述

2 回答

?
UYOU

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

我使用 getOne 方法在我的服務(wù)中按 id 檢索我的文件夾?,F(xiàn)在使用 folderRepository.findById(id) 并且現(xiàn)在可以使用:


public Folder findById(Long id) {


    Optional<Folder> folder = folderRepository.findById(id);


    if (!folder.isPresent())

        return null;


    return folder.get();

}


查看完整回答
反對 回復(fù) 2022-10-07
?
繁花不似錦

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

您很Folder可能正在檢索一個(gè)實(shí)體,而無需在此處的一個(gè)事務(wù)下獲取任何依賴項(xiàng):

Folder folder = folderService.findById(id);

然后,當(dāng)您嘗試訪問時(shí)folder.getOwner(),沒有獲取 Owner 依賴項(xiàng),并且持久性提供程序嘗試從數(shù)據(jù)庫中延遲加載它:

if (folder.getOwner().getId().equals(user.getId())) { 
   return true;
   }

問題在于它folder超出了事務(wù)范圍和一個(gè)分離的實(shí)體。

我建議獲取方法Owner 內(nèi)部folderService.findById(id)或?qū)⒉樵兒蜅l件置于相同的事務(wù)方法下。


查看完整回答
反對 回復(fù) 2022-10-07
  • 2 回答
  • 0 關(guān)注
  • 136 瀏覽

添加回答

舉報(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)