当前位置: 首页 > 知识库问答 >
问题:

Olingo:EntityContainer和EntitySets的区别

孙修德
2023-03-14

[编辑]

我想问一个我还不太明白的误会。如果entityset是一组实体:

为什么需要在OData提供程序上实现EntitySet csdlabstractedmprovider.getEntitySet()方法?正如您在这里看到的,我需要实现返回entitySet的方法。这是Olingo文档上的实现:

public CsdlEntitySet getEntitySet(FullQualifiedName entityContainer, String entitySetName) {

  if(entityContainer.equals(CONTAINER)){
    if(entitySetName.equals(ES_PRODUCTS_NAME)){
      CsdlEntitySet entitySet = new CsdlEntitySet();
      entitySet.setName(ES_PRODUCTS_NAME);
      entitySet.setType(ET_PRODUCT_FQN);

      return entitySet;
    }
  }

  return null;
}

共有1个答案

微生嘉
2023-03-14

根据OData文档,第4.1节:

EDM的核心概念是实体和关联。实体是实体类型(例如,Customer、Employee等)的实例,这些实体类型是由命名和类型化属性组成的结构化记录,并带有一个键。复杂类型是结构化类型,也由属性列表组成,但没有键,因此只能作为包含实体的属性或临时值存在。实体键由实体类型的属性子集形成。实体键(例如,CustomerId或OrderId)是唯一标识实体类型实例并允许实体类型实例参与关系的基本概念。实体按实体集分组(例如,Customers是一组Customer实体类型实例)。

关联定义两个或多个实体类型之间的关系(例如,Employee WorksFor Department)。关联的实例被分组在关联集中。导航属性是实体类型上的特殊属性,这些属性绑定到特定的关联,并可用于引用实体的关联。

    null

编辑,按照您的问题更改:

Provider.getEntitySet()方法和Processor.getEntitySet()之间的区别归结为Provider和Processor类的用途不同。

  • 提供者类定义OData服务的结构和元数据。getEntitySet方法定义每个实体集的结构(名称和类型)。
  • 处理器类本质上是OData服务的servlet。在这里,HTTP请求被解析、处理和重定向(到您的服务或DAO层)。处理器中的getEntitySet方法用于处理以下结构的请求:(主机和端口)/(service root.svc)/(MyEntitySet),例如:http://services.odata.org/v3/northwind/northwind.svc/customers。在这个方法中,确定请求了哪个实体集,然后调用DAO来相应地获取数据。
 类似资料:
  • 本文向大家介绍& 和 && 的区别?相关面试题,主要包含被问及& 和 && 的区别?时的应答技巧和注意事项,需要的朋友参考一下 &运算符是:逻辑与;&&运算符是:短路与。 &和&&在程序中最终的运算结果是完全一致的,只不过&&存在短路现象,当&&运算符左边的表达式结果为false的时候,右边的表达式不执行,此时就发生了短路现象。如果是&运算符,那么不管左边的表达式是true还是false,右边表达

  • 本文向大家介绍AdaBoost和GBDT的区别,AdaBoost和GBDT的区别?相关面试题,主要包含被问及AdaBoost和GBDT的区别,AdaBoost和GBDT的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: AdaBoost通过调整错分的数据点的权重来改进模型,而GBDT是从负梯度的方向去拟合改进模型。 AdaBoost改变了训练数据的权值,即样本的概率分布,减少上一轮被正

  • 本文向大家介绍Cookie和session的区别,localstorage和sessionstorage的区别相关面试题,主要包含被问及Cookie和session的区别,localstorage和sessionstorage的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Cookie和session都可用来存储用户信息,cookie存放于客户端,session存放于服务器端,因为c

  • 有人能给我解释一下在列表类中使用E或Object的区别吗,以及它们的单一用法和定义。我必须在LinkedList中使用它们来实现方法。

  • 本文向大家介绍is和==的区别相关面试题,主要包含被问及is和==的区别时的应答技巧和注意事项,需要的朋友参考一下  

  • 问题内容: 我知道Lucene和Solr是两个不同的Apache项目,它们可以一起工作,但是我不明白每个项目的目的是什么。 据我所知,到目前为止,Lucene用于创建搜索索引,Solr使用该索引执行搜索。我是对的还是这是完全不同的方法? 问题答案: @darkheir:Lucene和Solr是两个可以一起工作的Apache项目,我不明白每个项目的目的是什么。 1)Solr在引擎盖下使用Lucene