这里是休眠的新手.我正在使用Hibernate 3.5,我理解应该默认使用延迟抓取.我通过启用SQL日志记录
<property name="show_sql">true</property>
Run Code Online (Sandbox Code Playgroud)
我正在请求对象A,它具有对象B的引用,该对象B保存实际的数据字节数组.我将数据推送到对象B,以便除非确实需要,否则数据不会从数据库中获取,但是当我请求对象A时,堆会急剧跳转,就像它无论如何都是获取数据一样,我从hibernate获取此输出SQL日志记录:
Hibernate: select attachment0_.id as id11_0_, attachment0_.data as data11_0_ from attachment_data attachment0_ where attachment0_.id=?
Run Code Online (Sandbox Code Playgroud)
我不清楚如何解释这个,特别是'as'语句.'attachment0.data'似乎是对象B中的字节数组.Hibernate是说它是为数组创建了一个代理,还是说这实际上是从数据库中提取数据?如果它刚刚创建了一个代理,我会看到没有代理的选择输出吗?
总而言之,我如何确定我是否有代理或真实对象以及如何解释select语句的相关问题的主要问题是什么?
我已经深入研究了hibernate文档,并在网上搜索了很多,但大多数信息似乎比我缺少的基本知识高出一步,所以任何帮助都会受到赞赏.