Query "select count(h) from Human h" fails if a subclass has a non-Id property named "id"

Description

Given the following classes:

Executing the query: select count( h ) from Human h results in the following SQL:

Note that:

  • idproperty0_.id is not the primary key column;

  • Human does not have a property named id;

  • count should be operating on the primary key, idproperty0_.realId.

The same select expression is generated using @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS).

When @Inheritance(strategy = InheritanceType.JOINED) is used, the generated SQL is:

In addition to using the wrong column, there is no table with alias idproperty0_1_.

Activity

Show:

Former userDecember 18, 2018 at 5:29 PM

Pushed to master and 5.3 branches.

Former userNovember 27, 2018 at 5:54 PM

, , I can confirm this is needed in 5.1.

Andrea BorieroNovember 23, 2018 at 1:19 PM


I may be wrong but I think this PR is really urgent for the 5.1.17 release but not for master.
Anyway I think will take care of this one on Monday.

Guillaume SmetNovember 23, 2018 at 12:43 PM

do we really need to have that committed to master soon? (Maybe it's required to have it in 5.1.x?)

I think we will have to release a CR2 due to the dependency issues with JAXB that Yoann fixed.

But I would prefer to keep it to the minimum if possible and move everything we can postpone to 5.4.1.

Fixed

Details

Assignee

Reporter

Components

Fix versions

Priority

Created November 22, 2018 at 6:07 AM
Updated January 19, 2019 at 5:31 PM
Resolved December 18, 2018 at 5:29 PM