Identifier too long

Description

I'm following up form HHH-355, basically, foreign keys with names that go well beying 30 chars of lenght.
I know how to reproduce the problem, and if required I can provide a test case, but let me point you to
the code path that generates the problem first (and see if that's enough).

I do have a hierarchy mapped with the table per class approach, with intermediate abstract classes.
Leaf classes of this hierarchy are apparently managed in hibernate usign the DenormalizedTable class. The code that generates the foreign keys for this class is:

public void createForeignKeys() {
includedTable.createForeignKeys();
Iterator iter = includedTable.getForeignKeyIterator();
while ( iter.hasNext() ) {
ForeignKey fk = (ForeignKey) iter.next();
createForeignKey(
fk.getName() + Integer.toHexString( getName().hashCode() ),
fk.getColumns(),
fk.getReferencedEntityName()
);
}
}

As you can see, it gets the foreign key name of the contained class, and appends another hexstring. This name can become really long if the
hierarchy has many levels. In my case I get names as long as: FK14F780C41886F83e63ff56e238e868d73630607.

Let me know if this is enough or if you need more information.
Ah, another problem is that the appended foreign parts do not pass thru the naming strategy, and as you can see they're not
uppercase in my sample (my naming strategy does uppercase everything)

Environment

None

Status

Assignee

Brett Meyer

Reporter

Andrea Aime

Fix versions

Labels

None

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Affects versions

Priority

Major
Configure