這篇文章主要介紹“@Transactional事務(wù)舉例分析”,在日常操作中,相信很多人在@Transactional事務(wù)舉例分析問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”@Transactional事務(wù)舉例分析”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
專業(yè)從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,高端網(wǎng)站制作設(shè)計(jì),小程序開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠(chéng)服務(wù),采用H5頁(yè)面制作+CSS3前端渲染技術(shù),成都響應(yīng)式網(wǎng)站建設(shè)公司,讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過(guò)程建立專項(xiàng)小組,與您實(shí)時(shí)在線互動(dòng),隨時(shí)提供解決方案,暢聊想法和感受。
在一個(gè)事務(wù)Transactional內(nèi),查詢緩存,并更新緩存實(shí)體;方法異常之后。數(shù)據(jù)庫(kù)沒(méi)有被更新。造成數(shù)據(jù)庫(kù)和緩存不一致。
public interface EmployeeService { public void CacheTest(); }
@Service public class EmployeeServiceImpl implements EmployeeService { private EmployeeService getProxy() { return (EmployeeService)AopContext.currentProxy(); } @Override @Transactional public void CacheTest() { // from db Employee employee = getProxy().findByUid("327d626c-bffc-11e9-b4c9-00163e06591c"); // from cache employee = getProxy().findByUid("327d626c-bffc-11e9-b4c9-00163e06591c"); employee.setName("name update"); if (employee != null) throw new ApiException("dd"); } }
@Test public void CacheTest(){ try { employeeService.CacheTest(); } catch (Exception e) { e.printStackTrace(); } logger.info(employeeService.findByUid("327d626c-bffc-11e9-b4c9-00163e06591c").getName()); }
打印的結(jié)果name update
表示名字確實(shí)被更新了,但是我們沒(méi)操作數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)沒(méi)有被更新。
到此,關(guān)于“@Transactional事務(wù)舉例分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!