请问怎么通过代码往Table里添加一行数据并保存?

请问怎么通过代码往Table里添加一行数据并保存?能否给个示例代码?

添加的这行数据需要显示到 table 上吗?简单的思路是 entitymanager 保存一个新实体,再刷新 table 的数据源/容器.

持久化一个新实体后,也可以试试用includeItem加到对应的datasource中。

    /**
     * Include an item into the collection. The datasource "modified" state doesn't change.
     */
    void includeItem(T item);

是必须先写到数据库,然后刷界面吗?感觉这样效率很低,能否直接操作界面的Table,不需要刷数据库的方式?

查一次数据库效率上没问题的,CUBA 就是为频繁查询数据库设计的。表格是跟其数据组件联动的,如果不刷数据库,也需要更新数据组件返回的数据内容。

是不是我直接操作table对应的DC就可以了?有没有什么参考的代码?

应该就是用 CollectionContainer 里面的 setItems() 方法。这个很简单的。你可以试试,有问题再看。

setItems() 好像是给DC设置整个数据集合,不是插入数据吧?我没有使用DS,不知道有没有DS上类似includeItem的方法呢?

我通过getMutableItems().add来添加的数据,也能同步显示到Table中,但是怎么把数据保存到数据库呢?我是这样写的:
InspectionSpecTemplateItem entity = metadata.create(InspectionSpecTemplateItem.class);
entity.setTemplate(template);
entity.setItem(item);
inspectionSpecTemplateItemsDl.getContainer().getMutableItems().add(entity);
dataContext.commit();

但是数据并未能保存到数据库,请问该怎么写才能正确保存数据!

看看这个回答是不是你要的。 这里用了DataContext.merge。 或者直接DataContext.create()

谢谢,改成dataContext.create就可以了