Playframework [Java]: что заменяет @ play.api.cache.Cache.getOrElse при переходе с Play 2.5 на 2.6 - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть проект Play 2.5 Java, с которым связано множество шаблонов (т.е. файлов * .scala.html). Я пытаюсь обновить проект с 2.5 до 2.6, но проект больше не компилируется. Сегменты кода обычно выглядят так

@(user: models.User)  
@import play.api.Play.current  
@play.api.cache.Cache.getOrElse("header" + user.getId(), 3600) {  
    ...  
}  

и трассировка ошибок

[error] head.scala.html:3: object Cache is not a member of package play.api.cache  
[error] @play.api.cache.Cache.getOrElse("header" + user.getId(), 3600) {  
[error]                 ^  

Документация Play предлагает использовать взамен «play.cache.SyncCacheApi», т.е. https://www.playframework.com/documentation/2.6.x/CacheMigration26
но этот API НЕ включает эквивалентную функцию getOrElse (), самая близкая, которую я смог найти, была
T getOrElseUpdate (строковый ключ, вызываемый блок, int expiration);
который я не могу понять, как использовать в шаблоне.

Другая часть документации Play предполагает, что я использую Injectable Twirl Templates, т.е. https://www.playframework.com/documentation/2.6.x/Highlights26#Injectable-Twirl-Templates
что еще более сбивает с толку, и это все еще не касается, какую функцию переоткрытия я использую для getOrElse в моих шаблонах.

Если у кого-то есть рабочий пример функции замены для play.api.cache.Cache.getOrElse () это было бы очень полезно.

...