Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么冬眠不';是否创建实体对象的代理?_Java_Hibernate_Proxy_Entity_Hibernate Mapping - Fatal编程技术网

Java 为什么冬眠不';是否创建实体对象的代理?

Java 为什么冬眠不';是否创建实体对象的代理?,java,hibernate,proxy,entity,hibernate-mapping,Java,Hibernate,Proxy,Entity,Hibernate Mapping,你有没有想过为什么Hibernate在默认情况下不创建实体对象的代理 在@OneToMany(fetch=FetchType.LAZY)的情况下,它将我们的集合替换为PersistentCollection 如果我们有@OneToOne(fetch=FetchType.LAZY)它提供了一个属性代理 然而,Hibernate不能延迟加载字符串字段,甚至不能尝试返回实体的代理,而不是实体对象 为什么Hibernate不将我们从会话中获取的对象转换为代理?为什么应该这样做?代理很昂贵。为返回的对象增

你有没有想过为什么Hibernate在默认情况下不创建实体对象的代理

@OneToMany(fetch=FetchType.LAZY)
的情况下,它将我们的集合替换为
PersistentCollection

如果我们有
@OneToOne(fetch=FetchType.LAZY)
它提供了一个属性代理

然而,Hibernate不能延迟加载
字符串
字段,甚至不能尝试返回
实体
的代理,而不是
实体
对象


为什么Hibernate不将我们从会话中获取的对象转换为代理?

为什么应该这样做?代理很昂贵。为返回的对象增加灵活性。例如,延迟加载字符串。Spring并不害怕代理和代理很多事情,从配置开始,AOP到@Lookup类的实现,用代理替换单例中的非单例,等等……每一个例子都在添加有用的功能。与只加载行相比,延迟加载单个列在典型开销方面是疯狂的;这正是联接表存在的原因。