Hi,
some time ago I added the following feature to the Hibernate Core:
Automated naming of the constraint types in the hbm2ddl schema export (naming scheme in
brackets)
- Primary Key Constraints (PK_<TABLENAME><IDX>)
- Unique Constraints (UK_<TABLENAME><IDX>_<COLUMNNAME><IDX>)
- Check Constraints
(<CT>_<TABLENAME><IDX>_<COLUMNNAME><IDX>)
- Foreign Key Constraints
(FK_<TABLENAME><IDX>_<COLUMNNAME><IDX>)
<CT> for unique constraints is one of:
- NN for Not Null Constraints
- CK for other Check Constraints
<IDX> is an index that is needed if the table or
column name has to be shortened because of a maximal
length of the constraint name in the database.
At the moment, I have implemented it in the following way:
- The constraint names are generated in the dialect.
- Constraint naming can be turned on and off in the
config file (persistence.xml).
- Via the config file you can specify a character
that is removed from the table and column names to
improve the constraint name length utilization,
e.g. COMPANY_DETAILS can be reduced to COMPANYDETAILS
- The maximal constraint name length can be specified
in the config file as well.
That way, it is possible to identify the reason for a constraint violation much more
easier. Additionally, you have not to be at the mercy of the database constraint naming
schema.
Is something similar implemented at the moment by anyone?
I would be pleased if you like to add this functionality to the hibernate sources.
In this case I would adapt my implementation:
- Create an own class e.g. DefaultConstraintNamingStrategy,
according to the table and column NamingStrategy ...
- ... that can be overwritten and plugged in via the
config file.
What do you think about this idea?
Best regards,
Jürgen
--
"Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen:
http://www.gmx.net/de/go/topmail