0

我有 2 家商店,它们的型号不同,但直接代理配置相同。当我加载这两个商店时(我同时为两个商店调用 store.load() )分机只发送一个请求(包含两个负载),第二个商店没有填充数据。我尝试将 batchActions 设置为 false,但没有成功。我在服务器端使用 ext direct spring。

代理配置:

代理人: {
        类型:'直接',
        批处理操作:假,
        directFn:doctorDirectController.getAll,
        读者:{
            类型:'json',
            根:'记录'
        }
    }

当我将超时设置为 1 秒时,一切正常:

    this.doctorStore1.load();
    变我=这个;
    设置超时(函数(){
        me.doctorStore2.load();
    }, 1000);

所以有2个问题:

  1. 如何强制directproxy不批量getAll请求
  2. 为什么第二个商店没有填充数据?请求和响应包含匹配的 tid。
4

1 回答 1

0

原来是Spring的问题。为了处理实体之间的循环引用(在杰克逊序列化期间导致问题),我使用了以下注释

@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@doctorId")

当同时发生 2 个存储加载时,它们会在一批中序列化并在一个响应中发回。上面的注释在 json 序列化期间删除了所有重复项,导致第二个存储不填充数据。

于 2015-03-22T09:51:34.083 回答