We're updating the issue view to help you get more done. 

Naming Strategy Does not affect the user-specified index/foreign-key names

Description

Hello,

I have the following entity:

1 2 3 4 5 @Entity @Table(uniqueConstraints = @UniqueConstraint(name = "my_longer_than_30_symbols_name", columnNames = { "category_pk", "id" })) public class ProductEntity { }

Now it all works good with Mysql and PostgreSQL but Oracle has this limit about 30 characters for columns, tables, indexes, foreign keys, etc. I tried specifying my own OraclePhysicalNamingStrategy and OracleImplicitNamingStrategy and the @UniqueConstraint's name is passed to my strategy so I can shrink it - BUT ONLY if I haven't specified explicit name.

The problem now is I have a platform with ~ 200 entities and relations where I have specified index names everywhere and I can't just delete them.

The same thing happens with @JoinColumn and @ForeignKey. As soon as I specify name for the foreign key it is no longer passed to the naming strategy so I cannot shrink it. But If I leave it like this:

1 @JoinColumn(foreignKey = @ForeignKey)

then it is auto-generated and it is passed to the naming strategy where I can shrink it.

The discussion about this issue is here:

http://stackoverflow.com/questions/38565495/how-to-handle-the-ora-00972-identifier-is-too-long-exception-with-hibernate-5-a/

Environment

ubuntu, oracle 12c

Status

Assignee

Vlad Mihalcea

Reporter

Petar Tahchiev

backPortable

Backport?

Fix versions

Affects versions

5.0.9

Priority

Major