首页 新闻 会员 周边 捐助

mybatis里面使用二级缓存得到的对象hashCode相同,输入==号为false,二级缓存得到的对象是否是同一个对象?

0
[待解决问题]

        SqlSessionFactory sqlSessionFactory = SqlSessionUtils.getSqlSessionFactory();

        SqlSession sqlSession = sqlSessionFactory.openSession();
        SqlSession sqlSession2 = sqlSessionFactory.openSession();

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User userById = mapper.findUserById(42);
        System.out.println(userById.hashCode());  //936580213
        sqlSession.close();

        UserMapper mapper2 = sqlSession2.getMapper(UserMapper.class);
        User userById2 = mapper2.findUserById(42);
        System.out.println(userById.hashCode());  //936580213
        sqlSession2.close();

        System.out.println(userById == userById2);  //false
木禾兄的主页 木禾兄 | 初学一级 | 园豆:196
提问于:2020-07-12 08:52
< >
分享
所有回答(1)
0

命中了没有去查询数据库,拿到的值跟第一次的一样,不过我也跟你一样的结果,应该是又浅克隆了一份,只是多了一份指针引用,成员变量的引用都是同一个地址

延年有余 | 园豆:202 (菜鸟二级) | 2022-05-10 23:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册