[hibernate-dev] ORM5 and naming strategies (or get me my foreign keys back!)

Guillaume Smet guillaume.smet at gmail.com
Tue Sep 15 10:10:11 EDT 2015


Hi all,

(starting with kudos to Steve for the 5 release, it's the first problem I
find in my migration journey)

I'm currently working on porting 2 of our existing applications to ORM 5 (I
already ported our template application to start new projects).

The naming strategies are giving me a hard time: we used the
DefaultComponentSafeNamingStrategy before and there is no real equivalent
in ORM 5.

It wouldn't be a problem to port it but there are other problems which are
not directly related. For instance, the foreign keys used to be named
fk_<hash> and they are now named fk<a different hash>:
    "fk421dhylghv6secx82frew7luc" FOREIGN KEY (action_id) REFERENCES
auditaction(id)
    "fk_26d86etoechksvjt5xmjdbqqg" FOREIGN KEY (action_id) REFERENCES
auditaction(id)

Same for the unique keys EXCEPT for the natural ids which are still named
the old way (with a uk_ prefix):
    "uk_idim50mwro7eanb1gn9p4xv01" UNIQUE CONSTRAINT, btree (unixname)
(see AnnotationBinder line 2274)

AFAICS, there's no easy way to migrate an existing application to ORM 5 if
we want to let ORM update the schema. We end up with duplicated foreign
keys/constraints.

So a few questions:
* Am I the only one who sees this as a problem?
* Shouldn't we propose naming strategies allowing a smoother transition
from ORM 4 to 5?
* Should we add more prominent warnings in the migration doc?
* Should the prefix naming be consistent (e.g. with or without an
underscore)? I personally like it better with the underscore.

-- 
Guillaume


More information about the hibernate-dev mailing list