Dongyi Lin created CXF-8942: ------------------------------- Summary: When OdataParser parses a date-time string to Instant, time is ignored and is always 00:00:00 Key: CXF-8942 URL: https://issues.apache.org/jira/browse/CXF-8942 Project: CXF Issue Type: Bug Components: JAX-RS Affects Versions: 4.0.3 Reporter: Dongyi Lin
Hi, I use ODataParser of JAX-RS Search to parse odata filter into SearchCondition, which then accepts JPACriteriaQueryVisitor, to build TypedQuery. However, the parser seems to ignore the time part in a date-time string when the target field is of Java Instant type. The resulting condition always has 00:00:00 in the time part regardless of the input. Here is an example with a made-up BookEntity, which contains an Instant field: {code:java} public class BookEntity { private int id; private Instant publishedDate; } final String queryFilter = "publishedDate ge '2023-07-01T18:00:00Z'"; final JPACriteriaQueryVisitor<BookEntity, BookEntity> jpaCriteriaQueryVisitor = new JPACriteriaQueryVisitor<>(entityManager, BookEntity.class, BookEntity.class); final ODataParser<BookEntity> oDataParser = new ODataParser<>(BookEntity.class); final SearchCondition<BookEntity> searchCondition = oDataParser.parse(queryFilter); searchCondition.accept(jpaCriteriaQueryVisitor);{code} The resulting property value of the search condition is always 2023-07-01T00:00:00Z regardless of the time value in queryFilter. Could you please help me with this problem? -- This message was sent by Atlassian Jira (v8.20.10#820010)