[hibernate-dev] Constraint naming in HBM2DDL schema export
Max Rydahl Andersen
max.andersen at redhat.com
Fri Oct 31 11:41:34 EDT 2008
These should be on the existing NamingStrategy, not Dialect.
They also needs to obey length limits on constraints - many dbs does not
allow so long ones.
It is not currently being implemented so feel free to contribute a patch
(most likely for 3.4 since it will break/change API)
/max
> 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
--
/max
More information about the hibernate-dev
mailing list