1
我们正在使用JPA + Hibernate。 我有一些多对一的映射,这是惰性加载。JPA + Hibernate强制JPA不使用代理来延迟加载
在服务中,我通过调用其getter方法来初始化多对一对象。但代理被分配给父VO,而不是实际的VO对象。
我的问题是,JPA有没有办法强制使用代理策略。 我在这里的限制是我不能使用休眠对象或@LazytoOne等注释。
在此先感谢。
我们正在使用JPA + Hibernate。 我有一些多对一的映射,这是惰性加载。JPA + Hibernate强制JPA不使用代理来延迟加载
在服务中,我通过调用其getter方法来初始化多对一对象。但代理被分配给父VO,而不是实际的VO对象。
我的问题是,JPA有没有办法强制使用代理策略。 我在这里的限制是我不能使用休眠对象或@LazytoOne等注释。
在此先感谢。
你不能阻止Hibernate在那里使用代理对象,因为它不得不保证它是一个懒惰的关系。
你有多种选择:
Hibernate.initialize(parent.getChild())
。请注意,这不是实现它的最佳方式,这也需要一个活动事务。我建议你去选择2或3,因为他们是最有效的方法来做到这一点。
更多阅读懒惰加载here。