二级缓存对象必须实现序列化接口

来源:3-2 Mybatis的缓存机制

饭勺超人

2019-10-14 14:35:30

听老师讲二级缓存内缓存的对象必须实现ava.io.Serializable接口,否则会报错

public class Employee {
    private Integer empno;
    private String ename;
    private String job;
    private Integer mgr;
    private Date hiredate;
    private Float sal;
    private Float comm;
    private Integer deptno;
    
    public static void main(String[] args) {
    //mybatis的配置文件
    String resource = "mybatis.xml";
    InputStream is = MybatisRunner.class.getClassLoader().getResourceAsStream(resource);
    //构建sqlSession的工厂
    SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
    String statement = "com.wenqiang.interview.mybatis.mapper.EmpMapper.findById";
    SqlSession session = sessionFactory.openSession();

    Employee emp1 = session.selectOne(statement, 7566);
    session.close();
    SqlSession session1 = sessionFactory.openSession();
    Employee emp2 = session1.selectOne(statement, 7566);
    session1.close();
    System.out.println(emp1);
    System.out.println(emp2);
    System.out.println(emp1 == emp2);

}

D:\Java\jdk1.8.0_201\bin\java.exe "-javaagent:D:\JetBrains\IntelliJ IDEA 2019.1.2\lib\idea_rt.jar=3683:D:\JetBrains\IntelliJ IDEA 2019.1.2\bin" -Dfile.encoding=UTF-8 -classpath D:\Java\jdk1.8.0_201\jre\lib\charsets.jar;D:\Java\jdk1.8.0_201\jre\lib\deploy.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\access-bridge-64.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\cldrdata.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\dnsns.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\jaccess.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\jfxrt.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\localedata.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\nashorn.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\sunec.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\sunjce_provider.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\sunmscapi.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\sunpkcs11.jar;D:\Java\jdk1.8.0_201\jre\lib\ext\zipfs.jar;D:\Java\jdk1.8.0_201\jre\lib\javaws.jar;D:\Java\jdk1.8.0_201\jre\lib\jce.jar;D:\Java\jdk1.8.0_201\jre\lib\jfr.jar;D:\Java\jdk1.8.0_201\jre\lib\jfxswt.jar;D:\Java\jdk1.8.0_201\jre\lib\jsse.jar;D:\Java\jdk1.8.0_201\jre\lib\management-agent.jar;D:\Java\jdk1.8.0_201\jre\lib\plugin.jar;D:\Java\jdk1.8.0_201\jre\lib\resources.jar;D:\Java\jdk1.8.0_201\jre\lib\rt.jar;D:\JetBrains\IdeaProject\interviewmybatis\target\classes;D:\Maven\repository\org\mybatis\mybatis\3.5.1\mybatis-3.5.1.jar;D:\Maven\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar;D:\Maven\repository\com\google\protobuf\protobuf-java\3.6.1\protobuf-java-3.6.1.jar com.wenqiang.interview.mybatis.entity.MybatisRunner
com.wenqiang.interview.mybatis.entity.Employee@679b62af
com.wenqiang.interview.mybatis.entity.Employee@679b62af
true

Process finished with exit code 0

也没报错误呀?

写回答

1回答

Jacquie

2019-10-14

可能是没有成功触发二级缓存吧,你按这个试试:https://www.cnblogs.com/cxuanBlog/p/11333021.html


0

0 学习 · 8263 问题

查看课程