我正在开发一个客户端-服务器-应用程序,其中 Hibernate 作为持久层,Jersey REST 用于网络通信。
给定具有角色的用户:
- 当我想在客户端显示所有用户时,我不希望 Hibernate 加载角色,也不希望通过网络发送它们
- 当我想修改用户的角色时,我希望它们被加载并被转移
我正在使用预加载模式(http://bwinterberg.blogspot.com/2009/09/hibernate-preload-pattern.html)来确定 Hibernate 应该加载哪些属性。这工作正常。
在案例 1 中,Hibernate 没有加载任何角色,正如预期的那样。但是一旦 Jersey 创建了要发送到客户端的 XML,它就会读取用户的角色,这反过来让 Hibernate 加载角色(以及所有其他属性)。最后,Hibernate 总是加载属于用户的完整数据集树。
在将用户传递给 Jersey 之前,我曾考虑通过关闭会话来分离用户,因此 Hibernate 无法加载角色,但这似乎没有任何效果。
有任何想法吗?