-
Proposal:
Show
Close without action.
Accepted: https://www.oasis-open.org/committees/download.php/48549/odata-meeting-29_on-20130314-minutes.html#odata-177
Section 3 currently states that an entity can be a member of at most one entity set. Given the ability to model entity type hierarchies this restriction seems rather unnatural: "Manager" is a specialization of "Employee", so it seems natural to have two entity sets "Managers" and "Employees", the former being a true subset of the latter, and a new "Manager" entity, POSTed to either set, would automatically appear in both.
Currently the only way to do that is to have an "Employees" entity set and a "Managers" function, with the drawback that the function is not advertised in the service document and thus not consumable in a hypermedia fashion.
{"report":{"apdex":1,"isInitial":true,"journeyId":"785c6170-17b3-42c2-94a9-f48867f6bf82","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":565.0999999046326,"redirectCount":0,"resourceLoadedEnd":606.5999999046326,"resourceLoadedStart":136,"resourceTiming":[{"duration":5.199999809265137,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":136,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":136,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":141.19999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":5.299999713897705,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":136.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":136.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":141.69999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":5.599999904632568,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":136.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":136.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":142.2999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":6.100000381469727,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":136.7999997138977,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":136.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":142.90000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":6.400000095367432,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":137,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":137,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":143.40000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":65,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":137.19999980926514,"connectEnd":137.19999980926514,"connectStart":137.19999980926514,"domainLookupEnd":137.19999980926514,"domainLookupStart":137.19999980926514,"fetchStart":137.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":137.19999980926514,"responseEnd":202.19999980926514,"responseStart":202.19999980926514,"secureConnectionStart":137.19999980926514},{"duration":77.7000002861023,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":137.7999997138977,"connectEnd":137.7999997138977,"connectStart":137.7999997138977,"domainLookupEnd":137.7999997138977,"domainLookupStart":137.7999997138977,"fetchStart":137.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":137.7999997138977,"responseEnd":215.5,"responseStart":215.5,"secureConnectionStart":137.7999997138977},{"duration":79.7999997138977,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":138,"connectEnd":138,"connectStart":138,"domainLookupEnd":138,"domainLookupStart":138,"fetchStart":138,"redirectEnd":0,"redirectStart":0,"requestStart":138,"responseEnd":217.7999997138977,"responseStart":217.7999997138977,"secureConnectionStart":138},{"duration":80.09999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":138.19999980926514,"connectEnd":138.19999980926514,"connectStart":138.19999980926514,"domainLookupEnd":138.19999980926514,"domainLookupStart":138.19999980926514,"fetchStart":138.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":138.19999980926514,"responseEnd":218.2999997138977,"responseStart":218.2999997138977,"secureConnectionStart":138.19999980926514},{"duration":80.2999997138977,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":138.40000009536743,"connectEnd":138.40000009536743,"connectStart":138.40000009536743,"domainLookupEnd":138.40000009536743,"domainLookupStart":138.40000009536743,"fetchStart":138.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":138.40000009536743,"responseEnd":218.69999980926514,"responseStart":218.69999980926514,"secureConnectionStart":138.40000009536743},{"duration":80.40000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":138.59999990463257,"connectEnd":138.59999990463257,"connectStart":138.59999990463257,"domainLookupEnd":138.59999990463257,"domainLookupStart":138.59999990463257,"fetchStart":138.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":138.59999990463257,"responseEnd":219,"responseStart":219,"secureConnectionStart":138.59999990463257},{"duration":80.90000009536743,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":138.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":138.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":219.59999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":80.59999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/a29179d70fa8562374ee16707692af77/shortcuts.js?context=issuenavigation&context=issueaction","startTime":138.90000009536743,"connectEnd":138.90000009536743,"connectStart":138.90000009536743,"domainLookupEnd":138.90000009536743,"domainLookupStart":138.90000009536743,"fetchStart":138.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":138.90000009536743,"responseEnd":219.5,"responseStart":219.5,"secureConnectionStart":138.90000009536743},{"duration":54.59999990463257,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":165.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":165.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":220,"responseStart":0,"secureConnectionStart":0},{"duration":54.30000019073486,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":165.69999980926514,"connectEnd":165.69999980926514,"connectStart":165.69999980926514,"domainLookupEnd":165.69999980926514,"domainLookupStart":165.69999980926514,"fetchStart":165.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":165.69999980926514,"responseEnd":220,"responseStart":220,"secureConnectionStart":165.69999980926514},{"duration":53.69999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":175.09999990463257,"connectEnd":175.09999990463257,"connectStart":175.09999990463257,"domainLookupEnd":175.09999990463257,"domainLookupStart":175.09999990463257,"fetchStart":175.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":175.09999990463257,"responseEnd":228.7999997138977,"responseStart":228.7999997138977,"secureConnectionStart":175.09999990463257},{"duration":30.800000190734863,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":202.09999990463257,"connectEnd":202.09999990463257,"connectStart":202.09999990463257,"domainLookupEnd":202.09999990463257,"domainLookupStart":202.09999990463257,"fetchStart":202.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":202.09999990463257,"responseEnd":232.90000009536743,"responseStart":232.90000009536743,"secureConnectionStart":202.09999990463257},{"duration":41.5,"initiatorType":"xmlhttprequest","name":"https://issues.oasis-open.org/rest/webResources/1.0/resources","startTime":411.40000009536743,"connectEnd":411.40000009536743,"connectStart":411.40000009536743,"domainLookupEnd":411.40000009536743,"domainLookupStart":411.40000009536743,"fetchStart":411.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":411.40000009536743,"responseEnd":452.90000009536743,"responseStart":452.90000009536743,"secureConnectionStart":411.40000009536743}],"threshold":1000,"fetchStart":0,"domainLookupStart":32,"domainLookupEnd":32,"connectStart":32,"connectEnd":80,"secureConnectionStart":55,"requestStart":80,"responseStart":128,"responseEnd":202,"domLoading":131,"domInteractive":621,"domContentLoadedEventStart":621,"domContentLoadedEventEnd":676,"domComplete":748,"loadEventStart":748,"loadEventEnd":750,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"f649a80da349d2","effectiveType":"4g","downlink":9.1,"rtt":0,"serverDuration":97,"dbReadsTimeInMs":11,"dbConnsTimeInMs":13,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}
I am very concerned that supporting entity instances in multiple entity sets is a much deeper change than simply removing the sentence that prevents it.
From the early days of the Entity Data Model on which OData is based, the concept that an entity lives in at most one entity set, and that its key uniquely identifies it within that set, has been a founding principle. I am very concerned about relaxing that principle.
The way in OData to get all employees who are managers is by explicitly casting, for example:
~Employees returns all employees, whether they are managers or not, and
~Employees/Sales.Manager returns only those employees that are managers