2 回答

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();
}

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ù)方法下。
添加回答
舉報(bào)