在测试hibernate中session的load方法时,发现怎么也没办法跟理论的情况一致。

load(User.class,2) 表示到数据库user表查询主键为2的数据记录,并将其封装到user对象中返回。但是,要等到我们用到user对象的时候才会真正去查询数据库。实现的原理就是代理。

但是在debug的时候,总是运行完load()方法,log中就出现查询数据库的语句。这不就是跟get方法一样了吗。后来发现,idea这些插入代码中显示的东东,其实也是需要去查询数据库才有的。这里idea调用的是变量的toString方法。其实在eclipse中原理也是一样,但是,如果我们不主动去查看变量的值的话,eclipse是不会调用toString方法。

IDEA debug模式下默认会调用变量的toString()方法

在下面的设置中,可以将该功能关掉。

IDEA debug模式下默认会调用变量的toString()方法


相关文章:

  • 2021-10-14
  • 2022-12-23
  • 2021-09-29
  • 2021-06-28
  • 2022-12-23
  • 2022-12-23
  • 2022-01-20
  • 2022-12-23
猜你喜欢
  • 2022-01-04
  • 2021-12-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-23
  • 2021-03-29
相关资源
相似解决方案