Hibernate延迟加载+ Jersey REST =渴望加载?

时间:2010-02-12 15:21:16

标签: java hibernate orm rest jersey

我正在开发一个Client-Server-Application,其中Hibernate作为持久层,Jersey REST用于网络通信。

给定角色的用户:

  1. 当我想在客户端显示所有用户时,我不希望Hibernate加载角色,我不希望它们通过网络发送
  2. 当我想修改用户的角色时,我希望它们被加载和转移
  3. 我正在使用预加载模式(http://bwinterberg.blogspot.com/2009/09/hibernate-preload-pattern.html)来确定Hibernate应该加载哪些属性。这很好。

    在案例1中,Hibernate没有加载任何角色,正如预期的那样。但是一旦Jersey创建了要发送给客户端的XML,它就会读取用户的角色,这反过来让Hibernate加载角色(以及所有其他属性)。 最后,Hibernate总是加载属于用户的完整数据集树。

    我考虑过在将用户传递给Jersey之前关闭会话来分离用户,因此Hibernate无法加载角色,但这似乎没有任何影响。

    有什么想法吗?

1 个答案:

答案 0 :(得分:3)

  • 在为其进行序列化之前,对您的实体进行浅层克隆并为其设置一个空集合

  • 创建代理集合的自定义代理,并仅在某些情况下委托加载(第一个用例),并在其他情况下返回空集合