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
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to