我有一個(gè) Spring Boot RESTful API 來(lái)接收和發(fā)送 SMS 給客戶端。我的應(yīng)用程序連接到我們的本地短信服務(wù)器,并通過(guò)移動(dòng)運(yùn)營(yíng)商接收短信并將其推送給客戶。我的應(yīng)用程序運(yùn)行良好。但我想通過(guò)實(shí)現(xiàn)緩存來(lái)優(yōu)化我的應(yīng)用程序。我正在使用 Spring Boot 的簡(jiǎn)單緩存。創(chuàng)建新短信時(shí)我面臨一些挑戰(zhàn)。發(fā)送/接收的所有 SMS 都以對(duì)話的形式(每張票)并附有客戶端。所以我面臨著將客戶端保存到緩存中的困難。下面是 createClient() 片段:@Transactional@Caching(evict = { @CacheEvict("allClientsPage"), @CacheEvict("countClients")}, put = { @CachePut(value = "clients", key = "#result.id", unless="#result != null"), @CachePut(value = "clientsByPhone", key = "#result.phoneNumber", unless="#result != null")})public Client create(Client client) { Client c = new Client(); if (client.getName() != null) c.setName(client.getName().trim()); c.setPhoneNumber(client.getPhoneNumber().trim()); /**---***/ c.setCreatedAt(new Date()); return clientRepository.save(c);}當(dāng)我嘗試創(chuàng)建一個(gè)新客戶端時(shí),org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'id' cannot be found on null被拋出。
1 回答

幕布斯7119047
TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
而不是使用unless="# result! = null"
使用condition="#result != null"
添加回答
舉報(bào)
0/150
提交
取消