]
Steven Hawkins updated TEIID-5873:
----------------------------------
Component/s: Misc. Connectors
Summary: OData mapping issue with mongodb (was: Implement ComplexTypes support
in OData EntityType)
This will mostly need addressed by alternative mapping logic with mongodb.
More than likely this means determining the primary key of the nested array. In this
example it would appear to be rowId. The workaround is to update the vdb to manually add
a primary key / foreign key for the inferred table.
Further out options are:
* Provide an option for json pass-through - I don't think this is really supported by
olingo.
* Provide an option to map rows as an array instead of via a relationship - we'd still
need to convey the schema of the array component type (since we don't have structs)
and update the olingo logic to handle this.
OData mapping issue with mongodb
---------------------------------
Key: TEIID-5873
URL:
https://issues.redhat.com/browse/TEIID-5873
Project: Teiid
Issue Type: Enhancement
Components: Misc. Connectors, OData
Affects Versions: 13.0.1
Reporter: Chee Kin Lim
Assignee: Steven Hawkins
Priority: Major
Fix For: 13.1
Given the following document in MongoDB matrix_variable collection:
{
"_id" : ObjectId("5b2367c9c9e77c0007ca0111"),
"createdOn" : ISODate("2018-06-15T07:16:25.459Z"),
"modifiedOn" : ISODate("2018-07-02T02:04:16.661Z"),
"variableId" : "183cf101d2334ac09bd0db9aee96081f",
"name" : "lfzq_test",
"description" : "",
"lastModifiedUserEmail" : "admin1(a)abc.com",
"headerRow" : {
"rowId" : "0b002942a5b4424f98fcc270af0290c3",
"values" : [
"name",
"value"
],
"isEncrypted" : [
false,
true
]
},
"rows" : [
{
"rowId" : "940467f9bb724d1688086baeec05049b",
"values" : [
"lfzq123q",
"751c634ca5e24102a00800b386955a5c"
]
}
],
"deleted" : false
}
The "headerRow" property is exposed as separate entity type in OData schema,
but not "rows" property.
I found the following entity types with odata/$metadata:
<EntityType Name="headerRow">...</EntityType>
<EntityType Name="matrix_variable">...</EntityType>
Github repo to showcase the issue:
https://github.com/limcheekin/teiid-spring-boot-mongodb-odata
Related StackOverflow post:
https://stackoverflow.com/a/59385181/303211