/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.dialect; import org.hibernate.engine.jdbc.dialect.spi.BasicDialectResolver; import org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo; import org.hibernate.engine.jdbc.dialect.spi.DialectResolver; /** * @author Steve Ebersole */ public class TestingDialects { public static class MyDialect1 extends Dialect { } public static class MyDialect21 extends Dialect { } public static class MyDialect22 extends Dialect { } public static class MySpecialDB2Dialect extends Dialect { } public static class MyDialectResolver1 implements DialectResolver { @Override public Dialect resolveDialect(DialectResolutionInfo info) { String databaseName = info.getDatabaseName(); int databaseMajorVersion = info.getDatabaseMajorVersion(); if ( "MyDatabase1".equals( databaseName ) ) { return new MyDialect1(); } if ( "MyDatabase2".equals( databaseName ) ) { if ( databaseMajorVersion >= 2 ) { return new MyDialect22(); } if ( databaseMajorVersion >= 1 ) { return new MyDialect21(); } } return null; } } public static class MyDialectResolver2 extends BasicDialectResolver { public MyDialectResolver2() { super( "MyTrickyDatabase1", MyDialect1.class ); } } public static class MyOverridingDialectResolver1 extends BasicDialectResolver { public MyOverridingDialectResolver1() { super( "DB2/MySpecialPlatform", MySpecialDB2Dialect.class ); } } }