gpt4 book ai didi

java - Flex Blaze DS 和 JPA - 延迟加载问题

转载 作者:行者123 更新时间:2023-11-30 06:30:51 25 4
gpt4 key购买 nike

我正在 Flex 中开发一个应用程序,使用 Blaze DS 与 Java 后端通信,后者通过 JPA (Eclipse Link) 提供持久性。

我在通过 Blaze DS 将 JPA 实体传递给 Flex 时遇到问题。 Blaze DS 使用反射通过调用实体上的所有 getter 方法将 JPA 实体转换为 ObjectProxy(实际上是一个 HashMap)。这包括任何延迟初始化的单/多对多关系。

您可能会看到我要去的地方。如果我通过 JPA 传递单个对象,这将调用该对象上的所有单/多对多方法。对于每个返回的对象,如果它们具有一对多/多对多的关系,它们也会被调用。因此,通过传回单个 JPA 实体,我实际上最终进行了多次数据库调用并将所有相关条目作为单个 ObjectProxy 实例传回!

我目前的解决方案是创建一个转换器,将每个实体转换为 ObjectProxy,反之亦然。这显然很麻烦,必须有更好的方法。

有什么想法吗?

最佳答案

作为替代方案,您可以考虑使用 GraniteDS而不是 BlazeDS:GraniteDS 具有更强大的 data management堆栈比 BlazeDS(它与 LCDS 竞争更多)并且完全支持所有主要 JPA 引擎的延迟加载:Hibernate、EclipseLink、OpenJPA 等。

此外,GraniteDS 有一个很棒的客户端 transparent lazy loading功能,甚至是所谓的 reverse lazy-loading机制。

而且您不需要任何类型的中间 DTO:它按原样序列化 JPA 实体,并在客户端使用代码生成的 ActionScript bean 来保持它们的初始化状态。

关于java - Flex Blaze DS 和 JPA - 延迟加载问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10141115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com