有没有人知道eclipselink需要刷新其共享缓存的确切时间?我已直接对数据库进行了更改。由于用java编写的应用程序使用eclipselink进行持久化,因此直接对数据库进行的更改仅在一段时间后才会反映出来。这是因为eclipselink的共享缓存在缓存值时。
答案 0 :(得分:2)
这取决于您的配置。来自EclipseLink user guide:
默认情况下,实体保留在共享缓存中,直到它们为止 明确删除或垃圾收集。
这还取决于您的Cache Type & Size配置。
第一个链接说明了如何使用expiry
注释的expiryTimeOfDay
或@Cache
属性设置特定实体的到期时间,例如@Cache(expiry = 600000)
。我认为没有可以应用于所有实体的全局设置,但这可能会有所帮助:Configuring Cache Expiration at the Project Level
或者,如果您希望数据过时,可以explicitly refresh the cache。