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.
JpqlQueryRendererandEqlQueryRendererare 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.TREAT(…)downcast in a pathSELECT TREAT(VALUE(m) AS Employee) …SELECT VALUE(m) …— cast silently droppedLOCATE(…)LOCATE('a', e.name)NullPointerExceptionwhile renderingFROMcollection member… FROM Order o2, IN(o2.lineItems) l …… FROM Order o2 …— member dropped, aliaslleft undefinedEach is independently reproducible against the current renderers. I can submit a focused PR with one commit per fix.