Inconsistent "SELECT 1" versus "SELECT ?1" with result type Object[]

Description

Hi,

As discussed in , createSelectionQuery("SELECT ?1", Object[].class) does not return an array but only the selected value itself. The same problem happens with named parameters.

Here is a reproducer for this bug. Note in particular that casting the parameter in the HQL works as expected.

Activity

Show:

Čedomir Igaly August 2, 2024 at 5:23 AM

I am not sure that suggested solution is really good one, so I’ve closed PR.

Čedomir Igaly August 1, 2024 at 3:49 PM

Created draft pull request #8744 with suggested solution

Čedomir Igaly August 1, 2024 at 3:41 PM

In org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan#determineRowTransformer :

 

when selection is parameter isSelectionAssignableToResultTypeis returning true on first check and singular returned transformer is returned. When selection is numeric isSelectionAssignableToResultType is returning false and array row transformer is returned.

 

Suggested change is

Fixed

Details

Assignee

Reporter

Components

Sprint

Fix versions

Affects versions

Priority

Created July 31, 2024 at 8:43 AM
Updated November 7, 2024 at 6:03 PM
Resolved October 4, 2024 at 2:38 PM