JOOQ 记录缓存异常

Posted

技术标签:

【中文标题】JOOQ 记录缓存异常【英文标题】:JOOQ record caching exception 【发布时间】:2016-09-20 03:16:42 【问题描述】:

我正在尝试使用 redis 缓存 JOOQ 记录结果。但同样是抛出以下错误:

org.springframework.data.redis.serializer.SerializationException: Cannot serialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is java.io.NotSerializableException: org.jooq.impl.Utils$Cache$Key

有什么建议可以解决这个问题吗?

【问题讨论】:

【参考方案1】:

这似乎与https://github.com/jOOQ/jOOQ/issues/5290 相同的问题,这是jOOQ 3.8.1 中的一个错误

我可以看到解决此问题的两种解决方法:

您在 redis 序列化之前通过调用 Record.detach() 明确“分离”您的记录 您使用Settings.attachRecords 属性关闭将记录自动附加到创建Configuration

在这两种情况下,如果您希望从 redis 中检索记录并再次存储,则需要显式调用 Record.attach(Configuration)

【讨论】:

以上是关于JOOQ 记录缓存异常的主要内容,如果未能解决你的问题,请参考以下文章

JOOQ 插入记录列表

JOOQ 插入到具有大量记录的选择中

将 jooq 中的获取/结果映射到特定记录

JOOQ:如何获取按字段分组的记录?

使用 POJO 仅更新 JOOQ 记录中更改的字段

Jooq 使用 MySql 中的记录批量更新