您打电话的时候
person.getType().getDescription()
如果
person引用的是尚未初始化的Hibernate代理,则可以,它将发出SQL查询以检索目标实体的字段值。
这种获取属性值的方法可能会非常痛苦,因为我认为Hibernate每次都会在数据库中进行操作以获取这些信息。
每个代理服务器只会发送一次。第一次使用时,它将在代理上设置一个标志,指示其已初始化,因此基础目标实体具有正确的值。如果已加载所有值,则无需返回数据库。
这不是Hibernate创建代理的确切方式,但是很好阅读:Proxy
Pattern。



