From 504e2768de904cd9c653e9f22b6d99a0ec26697a Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Sat, 5 May 2018 20:38:10 +0200 Subject: [PATCH] Add SAP HANA to common JPA database platforms Issue: SPR-16460 --- .../orm/jpa/vendor/AbstractJpaVendorAdapter.java | 2 +- .../java/org/springframework/orm/jpa/vendor/Database.java | 6 +++++- .../orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java | 3 ++- .../orm/jpa/vendor/HibernateJpaVendorAdapter.java | 2 ++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/AbstractJpaVendorAdapter.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/AbstractJpaVendorAdapter.java index 5f14cb57bf..a472a1e463 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/AbstractJpaVendorAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/AbstractJpaVendorAdapter.java @@ -48,7 +48,7 @@ public abstract class AbstractJpaVendorAdapter implements JpaVendorAdapter { /** * Specify the target database to operate on, as a value of the {@code Database} enum: - * DB2, DERBY, H2, HSQL, INFORMIX, MYSQL, ORACLE, POSTGRESQL, SQL_SERVER, SYBASE + * DB2, DERBY, H2, HANA, HSQL, INFORMIX, MYSQL, ORACLE, POSTGRESQL, SQL_SERVER, SYBASE *

NOTE: This setting will override your JPA provider's default algorithm. * Custom vendor properties may still fine-tune the database dialect. However, * there may nevertheless be conflicts: For example, specify either this setting diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/Database.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/Database.java index fbdcd48f53..5452cf0e99 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/Database.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/Database.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,8 +39,12 @@ public enum Database { DERBY, + /** @since 2.5.5 */ H2, + /** @since 5.1 */ + HANA, + HSQL, INFORMIX, diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java index 78e65e29c3..b605d5fd55 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java @@ -97,9 +97,10 @@ public class EclipseLinkJpaVendorAdapter extends AbstractJpaVendorAdapter { switch (database) { case DB2: return TargetDatabase.DB2; case DERBY: return TargetDatabase.Derby; + case HANA: return TargetDatabase.HANA; case HSQL: return TargetDatabase.HSQL; case INFORMIX: return TargetDatabase.Informix; - case MYSQL: return TargetDatabase.MySQL4; + case MYSQL: return TargetDatabase.MySQL; case ORACLE: return TargetDatabase.Oracle; case POSTGRESQL: return TargetDatabase.PostgreSQL; case SQL_SERVER: return TargetDatabase.SQLServer; diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaVendorAdapter.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaVendorAdapter.java index ae499ad328..8533fdc5ec 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaVendorAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaVendorAdapter.java @@ -28,6 +28,7 @@ import org.hibernate.cfg.AvailableSettings; import org.hibernate.dialect.DB2Dialect; import org.hibernate.dialect.DerbyTenSevenDialect; import org.hibernate.dialect.H2Dialect; +import org.hibernate.dialect.HANAColumnStoreDialect; import org.hibernate.dialect.HSQLDialect; import org.hibernate.dialect.InformixDialect; import org.hibernate.dialect.MySQL5Dialect; @@ -185,6 +186,7 @@ public class HibernateJpaVendorAdapter extends AbstractJpaVendorAdapter { case DB2: return DB2Dialect.class; case DERBY: return DerbyTenSevenDialect.class; case H2: return H2Dialect.class; + case HANA: return HANAColumnStoreDialect.class; case HSQL: return HSQLDialect.class; case INFORMIX: return InformixDialect.class; case MYSQL: return MySQL5Dialect.class;