org.apache.ibatis.cache.CacheException: Error serializing object. Mybatis二级缓存报错的两种解决办法

先看下官方文档导致这个问题的原因:

readOnly(只读)属性可以被设置为 true 或 false。只读的缓存会给所有调用者返回缓存对象的相同实例。 因此这些对象不能被修改。这就提供了可观的性能提升。而可读写的缓存会(通过序列化)返回缓存对象的拷贝。 速度上会慢一些,但是更安全,因此默认值是 false。

也就是说,默认情况下,出于安全考虑,Mybatis将缓存设置成可读写的,然后通过序列化的方式返回给我们缓存的对象拷贝

如果我们的对象没有实现可序列化的接口就会抛出 org.apache.ibatis.cache.CacheException: Error serializing objec 的异常。所以我们的解决方式有两种:

第一种:让我们的实体类实现 Serializable 接口即可。

public class Student implements Serializable {
   
    
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`org.apache.ibatis.exceptions.PersistenceException` 是 MyBatis 持久化异常的父类,它通常是其他具体异常的包装类。要解决这个异常,你需要进一步查看异常的详细信息和堆栈跟踪,以找出具体的误原因。 在你的异常信息中,通常会有更具体的异常类和误信息。你可以将这些信息提供给我,我可以帮助你分析并给出解决方案。另外,你也可以尝试以下几个常见的解决方法: 1. 检查数据库连接:确认数据库连接的配置信息是否正确,包括数据库地址、用户名、密码等。可以尝试连接数据库的工具或者其他方式来验证连接是否正常。 2. 检查 SQL 语句:查看你的映射文件中定义的 SQL 语句是否正确。可以将 SQL 语句复制到数据库客户端中运行,看是否能够正常执行。 3. 检查映射配置:确认映射文件中的参数映射和结果集映射是否正确。可以对照数据库表结构和映射文件中的配置来进行验证。 4. 查看日志信息:查看 MyBatis 的日志输出,看是否有更详细的误信息和提示。你可以在 `mybatis-config.xml` 中配置日志输出级别,以便更好地调试问题。 5. 检查依赖版本:确认你使用的 MyBatis 版本与其他相关依赖的版本是否兼容。有时候不同版本的依赖之间可能存在冲突或不兼容的情况。 希望以上方法能够帮助你解决问题。如果你提供更具体的异常信息和代码片段,我可以给出更具体的建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值