[hibernate-dev] org.hibernate.engine.jdbc.dialect.spi.DialectResolver

Max Rydahl Andersen max.andersen at redhat.com
Wed Aug 29 13:26:17 EDT 2012


hmm - any reason why jpa won't pass in DatabaseMetadata ?

how would one identify name and version anyway if that is not available ?

/max

On 29 Aug 2012, at 16:43, Steve Ebersole <steve at hibernate.org> wrote:

> I think we need to consider changing DialectResolver to fit with some 
> upcoming JPA 2.1 features.
> 
> JPA 2.1 is adding some form of schema export.  The initial plan there is 
> to identify the "dialect" to target by passing in the (1) database name 
> and (2) database version as it would come from JDBC DatabaseMetaData. 
> The connection may or may not be available.
> 
> Currently we just pass the DatabaseMetaData to the DialectResolver:
> 
> public Dialect resolveDialect(DatabaseMetaData metaData)
> 
> The original thinking was to support resolvers looking at information 
> other than just name/version ion making the determination (or even in 
> potentially configuring the Dialect before return).  However all our 
> implementations are based on just name/version resolution.
> 
> Even worse the current proposal proposes using (String) 
> DatabaseMetaData#getDatabaseProductVersion whereas we use (int) 
> DatabaseMetaData#getDatabaseMajorVersion and (int) 
> DatabaseMetaData#getDatabaseMinorVersion inside the standard resolver
> 
> So should we change this contract?
> 
> public Dialect resolveDialect(String dbName, int majorVersion, int 
> minorVersion)
> 
> or
> 
> public Dialect resolveDialect(String dbName, String dbVersion)
> 
> WDYT?
> 
> -- 
> steve at hibernate.org
> http://hibernate.org
> _______________________________________________
> 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