如何使用 SAP UI5 V2 ODataModel 模型 API 实现 deepCreate 的场景以及局限性

news/2024/5/17 13:16:51/文章来源:https://blog.csdn.net/i042416/article/details/127147450

如果开发人员期望在持久化时请求已创建条目的导航属性(navigation property),请使用可选的 expand 参数在与实体创建的 POST 请求相同的批处理请求中有效地执行此操作。

可选的 inactive 参数确定是否创建非活动 transient 上下文。 这样的上下文只会在属性更新时成为活动的 transient上下文。 在此之前,它不是挂起的更改,即它不被 hasPendingChanges API 考虑,也不能被 resetChanges 删除; submitChanges API 不会触发非活动上下文的创建请求。

deepCreate,即首先创建一个实体,并基于这个新创建的实体,再次新创建一个子实体。

V2 ODataModel 不支持在同一个 API 请求里完成这个场景。

可以链接两个 API 调用来创建具有两个顺序请求的父实体和子实体,如以下示例所示,该示例同时创建了一个销售订单和一个销售订单项目:

var oParentContext,oModel = this.getView().getModel();oParentContext = oModel.createEntry("/SalesOrderSet");
oParentContext.created().then(function () {var oChildContext = oModel.createEntry("ToLineItems", {context : oParentContext});oModel.submitChanges(); // triggers request for creation of item
});oModel.submitChanges(); // triggers request for creation of sales order

ODataModel.createEntry 的一个局限性:

ODataListBinding.create 创建一个条目并将其插入到条目列表的开头或结尾。 该条目在绑定控件的对应位置可见,无需先保存到后端再刷新绑定; 与 ODataModel#createEntry API 相比,这是一个优势。

如果有一个显示条目集合的列表或表格控件并且以下条件之一适用,请使用方法 ODataListBinding.create,而不是 ODataModel.createEntry

  • 创建的条目甚至在存储到后端之前就应该出现在此表中,以便最终用户可以查看和修改他们的数据。

  • 即使已经持久化到后端,创建的条目也应该显示在表格中的相同位置; 只是他们的数据会根据创建 POST 请求的响应进行更新。

  • 希望提供内联创建行以快速创建新条目。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_206600.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jaca集合(四)Vector集合底层源码分析

Vector的基本介绍&#xff1a; &#xff08;1&#xff09;Vector类的定义说明&#xff1a;我们进入源码界面进行查看&#xff1a; public class Vector<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, java.io.Serializable &#…

Qt之事件处理机制

目录 一、事件简介 二、事件的处理 1.重写notify处理函数 2.事件过滤器 3.重写event处理函数 4.重写特定事件处理函数 三、事件的发送 一、事件简介 Qt 是一个基于 C 的框架&#xff0c;主要用来开发带窗口的应用程序。使用的基于窗口的应用程序都是基于事件&#xff0c…

网课查题公众号题库接口

网课查题公众号题库接口 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#xf…

05-Elasticsearch-DSL高级检索[分页, 分词, 权重, 多条件, 过滤, 排序, 关键词高亮, 深度分页, 滚动搜索, 批量Mget]

DSL搜索 词库准备骚年 帅气 新闻网 新闻 闻网 新 闻 网索引准备PUT /shop {"settings": {"number_of_shards": 5,"number_of_replicas": 0} } POST /shop/_mapping {"properties": {"id": {"type": "long&qu…

JavaSE_第8章 异常(尚)

JavaSE_【异常】 主要内容 异常的体系结构常见异常throw关键字&#xff08;手动创建并抛出异常&#xff09;异常处理机制一&#xff1a;try&#xff08;掌握&#xff09;异常处理机制二&#xff1a;throws&#xff08;掌握&#xff09;自定义异常 学习目标 能够辨别程序中异…

03-Elasticsearch-基本语法

查询[ES] 查询ES信息GET /查询集群健康状态GET /_cluster/health增删改索引 创建索引并指定主分片和副本数PUT /my_doc {"settings": {"number_of_shards": 1,"number_of_replicas": 0} }创建索引并指定映射PUT /index_mappings {"mappings…

Redis详解

Redis介绍1.Redis 是一个基于内存的高性能 key-value 数据库。是完全开源免费的,用C语言编写的,遵守BSD协议2.Redis 特点:1)Redis 是基于内存操作的,吞吐量非常高,可以在 1s内完成十万次读写操作      2)Redis 的读写模块是单线程,每个操作都具原子性      …

图的遍历 —— 广度优先遍历

与树的遍历类似&#xff0c;图的遍历指从图的某一节点出发&#xff0c;按照某种搜索方式对图中的所有节点都仅访问一次。图的遍历可以解决很多搜索问题&#xff0c;实际应用非常广泛。图的遍历根据搜索方式的不同&#xff0c;分为广度优先遍历和深度优先遍历。 图的遍历 —— 广…

PATHWAYS: ASYNCHRONOUS DISTRIBUTED DATAFLOW FOR ML论文阅读笔记

PATHWAYS: ASYNCHRONOUS DISTRIBUTED DATAFLOW FOR ML 针对机器学习的异步分布式数据流阅读笔记 B站李沐视频讲解&#xff1a;Pathways-论文精读-李沐 摘要 ​ 本篇论文介绍了用于加速器的新的大规模的编排层orchestration layer的设计——Pathways。论文新型异步分布式数据…

Redis 缓存穿透, 缓存击穿, 缓存雪崩的解决方案与布隆过滤器

缓存穿透解决方案 设置空值布隆过滤器优点可以将存在的缓存, 位置设置为1, 然后当不存在的参数过来的时候, 会匹配到0上,这样就会直接返回不存在缺点存在错误判断, hash冲突 删除缓存时无法删除指定的1的位置, 应为存在多数据,同一hash, 所以无法删除 增加开发成本, 维护成本提…

线段树的基本操作

一 基本概念 线段树是一种基于分治思想的二叉树&#xff0c;它的每个节点对应一个[L,R]区间,叶子节点的区间 LR。每个非叶子节点[L,R]的左孩子区间为&#xff3b;L,(LR)/2]&#xff0c;右孩子区间为&#xff3b;(LR)/2,R]。[1,10] 区间的线段树如下。 二 线段树的存储方式 对…

初识ansible和ad-hoc

基本环境要求&#xff1a; 管理节点 被管理节点 openssh openssh python > 2.6 python >2.4 ansible 安装ansible 用最简单的方式进行安装 环境 CentOS Linux release 7.3.1611 内核版本&#xff1a; 3.10.0-514.el7.x86_64 centos7 需要联网 yum install epel-relea…

【ACM-ICPC】NEERC-2017(Clone Contest)

【ACM-ICPC】NEERC-2017(Clone Contest)A. Auxiliary Project (思维贪心)K. Kotlin Island (找规律构造)B. Boolean Satisfiability (逻辑或的性质)C. Consonant Fencity (下标映射二进制枚举构造)I. Intelligence in Perpendicularia(学霸题)简单记录一下比赛中AC的题目和思路…

Android Camera性能分析 - 第21讲 录像Buffer Path详解

本讲是Android Camera性能分析专题的第21讲 ​&#xff0c;我们介绍录像Buffer Path详解&#xff0c;包括如下内容&#xff1a; Android Codec2 简介Video Codec MediaRecorder.getSurface 录像Buffer PathVideo Codec2 MediaRecorder.getSurface 录像Buffer PathVideo Code…

【吴恩达深度学习】——NLP和Word Embedding

NLP和词嵌入思维导图词汇表征one-hot表征特征表征&#xff1a;词嵌入使用word Embeddings命名实体识别的例子&#xff1a;词嵌入的迁移学习&#xff1a;词嵌入和人脸编码词嵌入的特性类比推理的特性相似度函数&#xff1a;嵌入矩阵学习词嵌入其它的上下文和目标词对Word2VecSki…

C++ -------- 类型转换

目录 1.C语言中的类型转换 2.为什么C需要四种类型转换 3.C强制类型转换 (1)static_cast (2)reinterpret_cast (3)const_cast (4)dynamic_cast 4.explicit 5.RTTI 6.常见测试题 1.C语言中的类型转换 在C语言中&#xff0c;如果赋值运算符左右两侧类型不同&#xff0…

MATLAB APP Desinger 使用方法介绍(下)---开发技巧常用示例补充整理以及app文件的发布和部署方法

本系列文章主要介绍使用MATLAB APP Desinge进行app或者说GUI界面开发的方法介绍&#xff0c;包括&#xff08;上&#xff09;和&#xff08;下&#xff09; 两篇文章&#xff0c;上篇中主要介绍常用的GUI组件的使用方法&#xff0c;下篇是对上篇的补充&#xff0c;主要介绍开发…

计算机网络原理(三):运输层

运输层服务 多路复用与多路分解 无连接运输:UDP 可靠数据传输原理 面向连接的运输:TCP 拥塞控制原理及TCP拥塞控制 一、运输层服务 1.1运输层服务 运 输层协议为运行在不同主机上的应用进程之间提供了逻辑通信(logic communica-tion)功能,从应用层的角度看,通过逻辑通信,运…

Docker镜像加速器的配置

目录 一、登录阿里云 1.1、点击右上角的控制台 1.2、再点击左上角​编辑 1.3、点击容器镜像服务 1.4、点击镜像工具&#xff0c;选择镜像加速器 1.5、加速器地址 1.6、选择自己使用的linux 二、配置镜像加速器 2.1、创建/etc/docker目录 2.2、配置镜像加速器 2.3、激…

谷粒学院16万字笔记+1600张配图(十七)——课程支付

项目源码与所需资料 链接&#xff1a;https://pan.baidu.com/s/1azwRyyFwXz5elhQL0BhkCA?pwd8z59 提取码&#xff1a;8z59 文章目录demo17-课程支付1.分析1.1两种情况1.2免费1.3收费2.新建订单微服务2.1创建子子模块service_order2.2创建数据表2.3生成代码2.4配置application.…