主表和子表数据关联查询,子表信息不能在线编辑

主表A 和 子表B,在主表A的编辑界面上列出子表B的数据。子表B的数据是根据主表的某个字段筛选出来;然后在子表B的界面上在线编辑数据提交后数据子表B的数据没保存进去

主表和子表如果是 @Composition 关系,需要在主表页面点确定提交。如果不是,应该在子表页面就commit的。

1,首先是上面的station,选择不同的值的时候下面的列表的数据回变
2.当列表的数据在线编辑保存的时候列表值没有变

这个需要看代码才能了解具体哪里有问题。请提供相关代码


这个是前台代码

这是后台的

帮忙看一下?帮忙看一下?帮忙看一下?

信息太少,你如果能提供一个小的测试项目上传上来,问题可能会更快地解决。

新建文件夹.rar (5.9 KB)

你这个描述里面的 1 是正确行为吧?2 里面说列表在线编辑保存的时候列表值没变,在线保存是如何保存的?我看到代码里有:

    @Subscribe("testContentTable.addLine")
    protected void onTestContentTableAdd(Action.ActionPerformedEvent event) {
        //
        TableItems<OpticalContent> set = testContentTable.getItems();
        //testContentDc.getMutableItems().clear();
        for(OpticalContent opticalContent:set.getItems()){
            //dataManager.remove(opticalContent);
            dataManager.commit(opticalContent);
        }
        //testContentDc.getMutableItems().addAll(set);

    }

执行了这个代码之后数据库的数据变了吗?

执行了这个代码之后数据库的数据没变啊,每次数据编辑的时候下拉选择对应的方法onStationDcItemChange()会被调用

使用 addLine 的时候,需要给 testConentTable 的 DC 添加一条记录。然后在行内编辑结束、或者整个编辑结束的时候,把 testContentTable 的 DC 保存到数据库。

每次数据编辑的时候下拉选择对应的方法onStationDcItemChange()会被调用

不用重复说同一件事情。我理解现在问题是你在下面表格编辑之后保存不了数据是吗?还是我理解有误?
请说清楚你的问题是哪里?
之前提供的代码缺少部分类,比如 station,所以并不能运行

为什么跟主表的信息关联不上

@Subscribe(“baocun”)
private void onBaocunClick(Button.ClickEvent event) {
//testContentDc.getMutableItems().clear();
OpticalMonitor opticalMonitor = getEditedEntity();
//dataManager.remove(opticalMonitor);
//OpticalMonitor saveOptical = dataManager.commit(opticalMonitor);
List opticalContentList = opticalMonitor.getTestContent();
List saveopticalContentList = new ArrayList();
for(OpticalContent opticalContent:opticalContentList){
//dataManager.remove(opticalContent);
//opticalContent.setOpticalMonitor(opticalMonitor);
OpticalContent saveOpticalContent=dataManager.commit(opticalContent);
saveopticalContentList.add(saveOpticalContent);
}
//this.getWindow().setCloseable(true);
testContentDc.getMutableItems().addAll(saveopticalContentList);
closeWithDefaultAction();
}

看上去需要再把 saveopticalContentList 设置回 opticalMonitor ? 这一步最好用 DC 来操作,能反映到 UI 上。

saveopticalContentList 设置 opticalMonitor的话,opticalMonitor的数据自动保存到库里,然后在保存就报主键冲突了

如果保存数据 后 表单界面自动关闭,列表页面自动刷新怎么写

监听关闭事件,在监听器中更新列表的 DC 呀。

这一步最好用 DC 来操作,能反映到 UI 上。这个怎么写,界面上已经关联了