java - 使用 SOAP 的惰性 Hibernate JPA

标签 java hibernate soap jpa

我有一堆带注释的、相互关联的 POJO,我想通过 SOAP 创建/修改/搜索它们。我创建了一个实用程序来快速加载每个 POJO 的每个详细信息并创建一个 XML 字符串,以便我可以将整个 POJO 图作为搜索结果发送。尽管图非常小(少于三个节点),但急切加载花费了很长的时间(500ms/节点)。

看起来瓶颈是必须渴望每个节点的整个图。是否可以通过 SOAP 进行延迟加载?还有哪些其他替代方案?

最佳答案

可以通过 SOAP 进行延迟加载,但相当复杂。而且绝对不会更快:-)

基本上,您需要为 POJO 创建代理(使用字节码工具),该代理将知道如何通过 SOAP 加载完整对象(或者其单个属性,如果您想达到该级别)。如果这听起来像是在重复 Hibernate 所做的事情,那是因为它就是:-) 仅当客户端不太可能访问“远程惰性”属性时,这种方法才有意义,而且一开始就急切加载这些属性通常确实成本很高。

另一种可能的方法是向 SOAP API 调用添加“膨胀级别”参数,类似于 SELF(仅限直接属性)/CHILDREN(直接子级)/FULL(完整对象树),这将导致仅初始化适当的属性。这将获取正确膨胀的对象的责任委托(delegate)给客户端(大概知道它需要处理什么)。

关于java - 使用 SOAP 的惰性 Hibernate JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1347560/

相关文章:

java - SOAP 附件未到达服务器端

java - 显示 ContextAttribs 和 GL11 投影矩阵模式 - 不支持功能

java - MANIFEST.MF 中的条目顺序

java - 当 'hibernate.dialect' 未使用 spring-boot 设置时,对 DialectResolutionInfo 的访问不能为 null

soap - 如何添加Web引用Visual Studio 2012

c# - asmx Soap Web 服务中的额外类(class)

java - Criteria API : same query, 不同的结果集类型(构造函数表达式)

java - 无法使用 Java sqlite jdbc 从 Firefox 读取表

java - 与 DBCP 连接池和线程的混淆

java - 将 hibernate 实体转换为 JSON : oblectId instead of whole object