[hibernate-dev] 5.0 defaults

Scott Marlow smarlow at redhat.com
Mon Aug 3 15:07:18 EDT 2015



On 08/03/2015 02:17 PM, Steve Ebersole wrote:
> Scott has been asking about making some setting defaults consistent between
> Hibernate and WildFly.  Most I think WildFly should just use the ORM
 > defaults.

If ORM 5.0 used the same defaults as the WildFly (JPA) deployer, then 
WildFly could stop setting them.

> But 3 in particular I thought we should all discuss and decide
> on..
>
> 1) hibernate.implicit_naming_strategy - by default Hibernate uses its
> legacy implicit naming strategy which predates the clarifications made in
> JPA 2.0 by many years.  The question here is whether we want to change this
> (now/ever) to use the JPA (2.0) compliant one?

 From a few weeks ago on 
https://www.mail-archive.com/hibernate-dev@lists.jboss.org/msg12650.html:

"
Question: Should 
hibernate.implicit_naming_strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl 
be the default for Hibernate 5?

Answer:

This is one of those things similar to "use new id generator mappings".
For new development I think it probably makes sense for WildFly users to
expect JPA-compliant implicit naming.    The difficulty is how changing
that would affect existing applications.
"

Is the ORM default exactly the same as pre-5?  If not, is there a jira 
that explains the difference?

>
> 2) hibernate.auto_quote_keyword - by default we decided to have Hibernate
> automatically quote identifiers it thinks are key/reserved words in the
> underlying database.  We know at the moment this is a bit too aggressive as
> it pulls in all of SQL:2003 defined keywords.  The question is whether we
> disable this by default?
>
> 3) hibernate.id.new_generator_mappings - by default we currently still map
> to the old identifier generators.  I personally also think it is time to
> change this default.  There are some risks here though.

WildFly has been defaulting hibernate.id.new_generator_mappings=true for 
the past four years but I don't think that makes this proposed change 
any easier for applications that aren't using WildFly EE (JPA) based 
deployments.

>
> Take an example... Legacy JPA users would have gotten
> MultipleHiLoPerTableGenerator
> when they used table-generation.  The new mapping for table-generation
> would be to use org.hibernate.id.enhanced.TableGenerator.  In theory the
> enhanced TableGenerator could be made to mimic the same "hi lo" based
> values using the correct optimizer (in *theory* because I have not tried
> it).  If selecting the proper optimizer works this one might not be a
> problem and there is no need for data migration.  But if it does not, we
> really have no migration path for user to migrate data.
>
> Another "difficulty" is that AUTO is mapped *very* differently.  AUTO used
> to map to the idea of a "native" generator which would choose between
> IDENTITY, SEQUENCE, etc.  The new mapping is to use the enhanced
> SequenceStyleGenerator.  For dialects where the old mapping picked
> IDENTITY, this is a very difficult migration point.  Granted they could
> change all the needed id mappings to specify identity...
>
> And of course we could also just say "this is a (painful) migration point"
> and document the known migration issues for existing apps in the migration
> guide.
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>


More information about the hibernate-dev mailing list