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_.

Environment

None

Activity

Show:
Guillaume Smet
November 23, 2018, 11: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.

Andrea Boriero
November 24, 2018, 12:19 AM


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.

Stephen
November 28, 2018, 4:54 AM

, , I can confirm this is needed in 5.1.

Gail Badner
December 19, 2018, 4:29 AM

Pushed to master and 5.3 branches.

Fixed

Assignee

Andrea Boriero

Reporter

Gail Badner

Fix versions

Labels

None

backPortable

Backport?

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Affects versions

Priority

Major