gwt的requestfactory的RequestContext.edit()的语义

时间:2013-10-09 07:22:05

标签: gwt edit requestfactory requestcontext

我想知道我对方法RequestContext.edit()(GWT 2.5.1)的语义是否正确。 在我看来,以下代码段中的警报永远不会发生。我对RequestContext.edit()的语义是对还是错呢?

        ICurTournamentPu ctpu = c.getPu(PUK3.curTournament);
        TourneyProxy origTourney = ctpu.getTourney();
        this.tourney = req.edit(origTourney);

        // TODO begin test
        {
            List<DisciplineProxy> otdl = origTourney.getTourneyDisciplines().getList();
            List<DisciplineProxy> tdl = tourney.getTourneyDisciplines().getList(); 
            if (otdl != null && tdl != null && otdl.size() != tdl.size()) {
                Window.alert("otdl.size()=" + otdl.size() + " != " + tdl.size() + "=tdl.size()");
            }
        }
        // TODO end test

通过可编辑实体的某些链接引用的列表似乎包含的元素多于通过原始不可编辑实体的等效链接引用的列表。这会在调用RequestContext.edit()之后立即发生。似乎在某种程度上,即使从服务器刷新后,也保留了来自同一客户端的旧更改。 顺便说一句,以下场景的定义语义是什么:

  1. 客户端1:加载版本为1的实体e并将其保存在变量e1
  2. 客户2:改变并坚持下去
  3. 客户端1:再次加载实体e(版本2)并将其保存在变量e2
  4. 客户端1:创建RequestContext“req”
  5. client 1:editableE1 = req.edit(e1);
  6. 客户端1:editableE2 = req.edit(e2);
  7. editableE2的定义值是什么?与editableE1相同的对象,因为已在此上下文中编辑过?还是一个新的AutoBean?有点混乱......任何人都能为我澄清一下吗? :)

1 个答案:

答案 0 :(得分:0)

你在寻找麻烦!

editableE2editableE1相同,即不可变bean为e1的可编辑bean。