Объект стал нулевым в аннотации @CachePutJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Объект стал нулевым в аннотации @CachePut

Сообщение Anonymous »

По какой-то причине я вижу, что объект был передан не нулевым, но в ключевом выражении он уже равен нулю.
Я пытаюсь прочитать некоторые данные из БД и добавить их в кэш.
Вот мои методы.
public void preloadCache() {
List allData = repository.findAll();
log.info("Data found {}", allData.size());
allData.forEach(cacheService::populateQuarterStatisticCache);
}

Вызывается отдельная служба
@Service
@Slf4j
public class CacheService {

@CachePut(value = "quarterStatistic", key = "#statistic.type + '-' + #statistic.location")
public QuarterBusinessesStatistic populateQuarterStatisticCache(Statistic statistic) {
log.info("Loading statistic into cache: {}-{}", statistic.getType(), statistic.getLocation());
return statistic.getData();
}
}

Журналы показывают, что есть один объект, и он не равен нулю.
[nio-8080-exec-1] StatisticClient : Data found 1
[nio-8080-exec-1] CacheService : Preloading statistic into cache: restaurant-New York

Но следующая строка журнала сообщает мне, что
SpelEvaluationException: EL1007E: свойство или поле «тип» не могут быть найдены в значении null
Если Я меняю ключ в аннотации @CachePut на key = "#statistic?.type + '-' + #statistic?.location", исключений не будет. Но в кеше я увижу сохраненный объект по ключу null-null
Я могу отладить его и увидеть, что мой объект не равен нулю. Журналы также подтверждают это. Но в ключевом выражении оно почему-то равно нулю.
У кого-нибудь было так же?
Примечание: я пробовал изменить ключ на что-то вроде
#statistic.getType() + '-' + #statistic.getLocation() — тот же результат
Мой pom.xml


4.0.0

com.example
MyService
1.0-SNAPSHOT


21
3.3.5




org.springframework.boot
spring-boot-starter-web


com.fasterxml.jackson.core
jackson-databind


org.projectlombok
lombok


com.h2database
h2
runtime


org.springframework.boot
spring-boot-starter-data-jpa







org.springframework.boot
spring-boot-dependencies
${spring-boot.version}
pom
import






org.apache.maven.plugins
maven-compiler-plugin
3.13.0

${java.version}
${java.version}



org.springframework.boot
spring-boot-maven-plugin







Подробнее здесь: https://stackoverflow.com/questions/792 ... annotation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»