HHH-12856 Support of sequences on DB2400
This commit is contained in:
parent
d04a1fe3fd
commit
1c3b8a1c28
|
@ -270,6 +270,7 @@ If for some reason it is not able to determine the proper one or you want to use
|
|||
|DB297 |Support for the DB2 database, version 9.7.
|
||||
|DB2390 |Support for DB2 Universal Database for OS/390, also known as DB2/390.
|
||||
|DB2400 |Support for DB2 Universal Database for iSeries, also known as DB2/400.
|
||||
|DB2400V7R1 |Support for DB2 Universal Database for i, also known as DB2/400, version 7.1
|
||||
|DerbyTenFive |Support for the Derby database, version 10.5
|
||||
|DerbyTenSix |Support for the Derby database, version 10.6
|
||||
|DerbyTenSeven |Support for the Derby database, version 10.7
|
||||
|
|
|
@ -28,6 +28,7 @@ import org.hibernate.dialect.Cache71Dialect;
|
|||
import org.hibernate.dialect.DB2390Dialect;
|
||||
import org.hibernate.dialect.DB2390V8Dialect;
|
||||
import org.hibernate.dialect.DB2400Dialect;
|
||||
import org.hibernate.dialect.DB2400V7R1Dialect;
|
||||
import org.hibernate.dialect.DB2Dialect;
|
||||
import org.hibernate.dialect.DerbyTenFiveDialect;
|
||||
import org.hibernate.dialect.DerbyTenSevenDialect;
|
||||
|
@ -202,6 +203,7 @@ public class StrategySelectorBuilder {
|
|||
addDialect( strategySelector, DB2390Dialect.class );
|
||||
addDialect( strategySelector, DB2390V8Dialect.class );
|
||||
addDialect( strategySelector, DB2400Dialect.class );
|
||||
addDialect( strategySelector, DB2400V7R1Dialect.class );
|
||||
addDialect( strategySelector, DerbyTenFiveDialect.class );
|
||||
addDialect( strategySelector, DerbyTenSixDialect.class );
|
||||
addDialect( strategySelector, DerbyTenSevenDialect.class );
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* 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.dialect.unique.DefaultUniqueDelegate;
|
||||
import org.hibernate.dialect.unique.UniqueDelegate;
|
||||
|
||||
/**
|
||||
* An SQL dialect for i. This class provides support for DB2 Universal Database for i V7R1 and
|
||||
* later, also known as DB2/400.
|
||||
*
|
||||
* @author Pierrick Rouxel (pierrickrouxel)
|
||||
*/
|
||||
public class DB2400V7R1Dialect extends DB2Dialect {
|
||||
|
||||
private final UniqueDelegate uniqueDelegate;
|
||||
|
||||
public DB2400V7R1Dialect() {
|
||||
super();
|
||||
|
||||
uniqueDelegate = new DefaultUniqueDelegate(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UniqueDelegate getUniqueDelegate() {
|
||||
return uniqueDelegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getForUpdateString() {
|
||||
return " for update with rs";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getQuerySequencesString() {
|
||||
return "select seqname from qsys2.syssequences";
|
||||
}
|
||||
}
|
|
@ -47,7 +47,7 @@ public enum Database {
|
|||
DB2 {
|
||||
@Override
|
||||
public Class<? extends Dialect> latestDialect() {
|
||||
return DB2400Dialect.class;
|
||||
return DB2400V7R1Dialect.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -55,7 +55,15 @@ public enum Database {
|
|||
final String databaseName = info.getDatabaseName();
|
||||
|
||||
if ( "DB2 UDB for AS/400".equals( databaseName ) ) {
|
||||
return new DB2400Dialect();
|
||||
final int majorVersion = info.getDatabaseMajorVersion();
|
||||
final int minorVersion = info.getDatabaseMinorVersion();
|
||||
|
||||
if ( majorVersion > 7 || ( majorVersion == 7 && minorVersion >= 1 ) ) {
|
||||
return latestDialectInstance( this );
|
||||
}
|
||||
else {
|
||||
return new DB2400Dialect();
|
||||
}
|
||||
}
|
||||
|
||||
if ( databaseName.startsWith( "DB2/" ) ) {
|
||||
|
|
|
@ -153,6 +153,7 @@ public class DialectFactoryTest extends BaseUnitTestCase {
|
|||
testDetermination( "DB2/LINUX390", DB2Dialect.class, resolver );
|
||||
testDetermination( "DB2/AIX64", DB2Dialect.class, resolver );
|
||||
testDetermination( "DB2 UDB for AS/400", DB2400Dialect.class, resolver );
|
||||
testDetermination( "DB2 UDB for AS/400", 7, 1, DB2400V7R1Dialect.class, resolver );
|
||||
testDetermination( "Oracle", 8, Oracle8iDialect.class, resolver );
|
||||
testDetermination( "Oracle", 9, Oracle9iDialect.class, resolver );
|
||||
testDetermination( "Oracle", 10, Oracle10gDialect.class, resolver );
|
||||
|
|
Loading…
Reference in New Issue