Skip to content

JPQL and EQL renderers fail using TREAT, LOCATE, and subqueries from collection members #4272

@jewoodev

Description

@jewoodev

JpqlQueryRenderer and EqlQueryRenderer are expected to re-render a parsed query unchanged, but three Jakarta Persistence spec-valid constructs are currently dropped or fail during rendering. All three parse fine in JPQL/EQL, and the same round-trip cases pass through the HQL renderer, so the failures are isolated to the JPQL/EQL visitors.

Construct Spec-valid input (abbrev.) Current behavior
TREAT(…) downcast in a path SELECT TREAT(VALUE(m) AS Employee) … SELECT VALUE(m) … — cast silently dropped
Two-argument LOCATE(…) LOCATE('a', e.name) NullPointerException while rendering
Subquery FROM collection member … FROM Order o2, IN(o2.lineItems) l … … FROM Order o2 … — member dropped, alias l left undefined

Each is independently reproducible against the current renderers. I can submit a focused PR with one commit per fix.

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions