我有一个非常直接的Web服务,它返回从数据库中检索的对象。我正在使用spring-data-jpa存储库来获取实体,之后,我返回对象而不做任何修改。
我在实体中有几个延迟加载的关系,并希望让它们“不受约束”。但是,当webservice封送响应对象时,它会触发延迟提取并对数据库进行额外调用。
在某些情况下,我仍然需要懒惰地获取数据,所以我需要能够从Hibernate的控件中动态分离/删除/取消发送对象。
我试图使用following method取消对象,但没有任何运气(我的实体似乎不是HibernateProxy对象)。
“un-ORMify”实体的最佳方法是什么,这样我就可以在不触发数据调用的情况下自由地操作/序列化对象。
答案 0 :(得分:1)
我发现数据传输对象(DTO)通常与实体对象有不同的要求,因此我只编写自定义DTO对象。构造函数通常是一个实体对象,它只是复制它需要的初始化字段。然后没有延迟初始化异常,而另一方获得的不包括未使用的字段。比试图破解整个代理的东西要好得多,恕我直言。
有用的链接:Difference between Transfer objects and Domain objects