出于优化目的,我想用hibernate无状态会话更新一些实体。
然而,这些实体是从“经典”会话加载的(我需要缓存功能来加快我的实体加载)。
所有这些都可能很好,但我的一些实体被懒惰地初始化,因此他们的类名称类似于:myentity_$$_javassist_22
。因此,我的无状态会话不想更新我的实体。
有没有办法将懒惰的初始化实体转换为加载的实体?
谢谢
答案 0 :(得分:2)
如果在将它们提供给无状态会话之前手动获取所有延迟加载的实体,它将起作用(不再需要代理)。但它可能会花费很多,因为它会生成许多查询来加载完整的对象图。
你要么先使用Hibernate.initialize(lazyEntity)获取它们,要么用kill-killing方法杀死它们(但你会保存null:可能它不是你想要的)。
检查有关Hibernate无状态会话的其他问题,看看它是否是解决问题的好方法 Using StatelessSession for Batch processing