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