Skip to content

Conversion of date to Edm.Date type  #207

@mailyashgoyal

Description

@mailyashgoyal

query example: http://localhost:4003/trail_db/CustomObjectUserLicenseMetrics?$filter=MetricsDate eq 2019-09-22

When converting the last segment of the query($filter=MetricsDate eq 2019-09-22), the below function is being called

EdmPrimitiveTypeKind convertToEdmSimpleType(final Class jpaType, final Attribute currentAttribute) throws ODataJPAModelException
Line number : 144
olingo-jpa-processor-v4/JPATypeConverter.java at main · SAP/olingo-jpa-processor-v4
Checks the currentAttribute if it is not null in order to convert the query parameter eg 2015-01-01 to Edm.Date

But the calling method convertToEdmSimpleType calls the
olingo-jpa-processor-v4/JPATypeConverter.java at main · SAP/olingo-jpa-processor-v4
With currentAttribute explicitly setting as null.

So the conversion to Date will not happen at all as it never succeed in the if check.
For proper conversion determineTemporalType(currentAttribute) == TemporalType.DATE
should return True, which means valid determination of TemporalType with with valid object instance.

The reason why it is being provided as null, the overridden method

EdmPrimitiveTypeKind convertToEdmSimpleType(final Class jpaType, final Attribute currentAttribute) throws ODataJPAModelException
Takes javax.persistence.metamodel.Attribute attribute
While the calling method EdmPrimitiveTypeKind convertToEdmSimpleType(final JPAAttribute attribute) throws ODataJPAModelException
has JPAAttribute

This mechanism happens only when value to type conversion check is being done.

While the check for Field to type is being propogated from IntermediateProperty.java

olingo-jpa-processor-v4/IntermediateProperty.java at main · SAP/olingo-jpa-processor-v4

Where the correct Attribute type is being set.

This issue, should also persist with Edm.Time.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions