Playframework [Java]:从Play 2.5迁移到2.6时,什么会替换@ play.api.cache.Cache.getOrElse

时间:2018-11-06 19:00:32

标签: caching playframework playframework-2.5 playframework-2.6

我有一个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(String key,Callable block,int expiration);
我不知道如何在模板中使用。

Play文档的另一部分建议我使用可注射旋转模板,即    https://www.playframework.com/documentation/2.6.x/Highlights26#Injectable-Twirl-Templates
这更加令人困惑,而且仍然无法解决我要使用的重新分配功能 我的模板中的getOrElse。

如果任何人都有play.api.cache.Cache.getOrElse()替换功能的有效示例 那将是很大的帮助。

0 个答案:

没有答案