我想知道有没有办法使用SpEL来过滤掉像空集合这样的值。
我的缓存当前过滤掉空值:
@Cacheable(value = "groupIdToGroupNames",unless = "#result == null")
public Map<Long, Collection<String>> findAllBySearchCustomerKey(final long groupId) {
return idToNameClient.findAllGroupMembersById(groupId);
}
我试图找到一种方法来筛选出大小为0但不为null的组。有没有办法通过使用@Cacheable的参数来做到这一点?
任何帮助将非常感激。
像这样的东西
unless = "#result==null or #result.size()==0"
unless = "#result==null or #result.isEmpty()"
为我工作。
只是为了展示一个例子(Artem Bilan的回答是有效的)。我的函数可以返回Optional.ofEmpty或者我的对象的Optional
@Cacheable(value = "myCache", unless = "#result == null", key = "@myDao.cacheKey(#id, #languageCode)")
public Optional<MyDTO> getMyStuff(int id, String languageCode) {
... }