Hibernate代理用于替代实际的实体POJO(普通的旧Java对象)。
Hibernate使用Proxy对象作为实体是为了允许延迟加载。
每个List
,Set
,Map
在实体类型是由取代的PersistentList
,PersistentSet
,PersistentMap
。这些类负责拦截对未初始化集合的调用。
代理不发出任何sql语句。它仅触发一个InitializeCollectionEvent,该事件由关联的侦听器处理,该侦听器知道要发出哪个初始化查询(取决于配置的提取计划)。