我正在开发一个Client-Server-Application,其中Hibernate作为持久层,Jersey REST用于网络通信。
给定角色的用户:
我正在使用预加载模式(http://bwinterberg.blogspot.com/2009/09/hibernate-preload-pattern.html)来确定Hibernate应该加载哪些属性。这很好。
在案例1中,Hibernate没有加载任何角色,正如预期的那样。但是一旦Jersey创建了要发送给客户端的XML,它就会读取用户的角色,这反过来让Hibernate加载角色(以及所有其他属性)。 最后,Hibernate总是加载属于用户的完整数据集树。
我考虑过在将用户传递给Jersey之前关闭会话来分离用户,因此Hibernate无法加载角色,但这似乎没有任何影响。
有什么想法吗?
答案 0 :(得分:3)
在为其进行序列化之前,对您的实体进行浅层克隆并为其设置一个空集合
创建代理集合的自定义代理,并仅在某些情况下委托加载(第一个用例),并在其他情况下返回空集合