1 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
將對(duì)象保存到數(shù)據(jù)庫后,我重定向到該對(duì)象。由于發(fā)票有很多行,我查詢 que invoice 及其行
Optional<InvoiceDTO> invoiceDTO = invoiceService.findOneWithLines(id);
在那個(gè)方法里面我有這樣的東西:
@Override
public Optional<InvoiceFaDTO> findOneWithLines(long id) {
Optional<Invoice> i = invoiceFaRepository.findById(id);
i.ifPresent(invoice -> {
if (invoice.getAttachmentUrl() != null) {
invoice.setPdf(amazonService.downloadFile(invoice.getAttachmentUrl()).toByteArray());
}
});
return i.map(invoiceFaMapper::toDto);
}
問題是我在括號(hào)內(nèi)所做的任何事情都會(huì)存儲(chǔ)在數(shù)據(jù)庫中,我不知道為什么(我沒有調(diào)用存儲(chǔ)庫,那為什么會(huì)保存呢?)。
我通過編輯i.ifPresent(invoice -> {行外的字段解決了這個(gè)問題。
編輯:Service該類被注釋@Transactional,添加@Transactional(readOnly = true)確實(shí)解決了問題。
添加回答
舉報(bào)