From c1b3d8ce377bd454d2219c0c2a15644cd366dfaa Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 26 Jul 2013 01:17:54 +0800 Subject: [PATCH] =?UTF-8?q?Hibernate=E7=9A=84getDialect()=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=A2=9E=E5=8A=A0=E5=AF=B9=20sqlserver=E5=92=8Cpostre?= =?UTF-8?q?sql=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/persistence/DynamicSpecifications.java | 3 ++- .../springside/modules/persistence/Hibernates.java | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java b/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java index 9b2d5071..2ec528c7 100644 --- a/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java +++ b/modules/core/src/main/java/org/springside/modules/persistence/DynamicSpecifications.java @@ -16,7 +16,8 @@ import org.springside.modules.utils.Collections3; import com.google.common.collect.Lists; public class DynamicSpecifications { - public static Specification bySearchFilter(final Collection filters, final Class clazz) { + + public static Specification bySearchFilter(final Collection filters, final Class entityClazz) { return new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder builder) { diff --git a/modules/core/src/main/java/org/springside/modules/persistence/Hibernates.java b/modules/core/src/main/java/org/springside/modules/persistence/Hibernates.java index 911cf45c..8c514d72 100644 --- a/modules/core/src/main/java/org/springside/modules/persistence/Hibernates.java +++ b/modules/core/src/main/java/org/springside/modules/persistence/Hibernates.java @@ -10,13 +10,14 @@ import org.hibernate.Hibernate; import org.hibernate.dialect.H2Dialect; import org.hibernate.dialect.MySQL5InnoDBDialect; import org.hibernate.dialect.Oracle10gDialect; +import org.hibernate.dialect.PostgreSQL82Dialect; +import org.hibernate.dialect.SQLServer2008Dialect; public class Hibernates { /** * Initialize the lazy property value. * - * eg. - * Hibernates.initLazyProperty(user.getGroups()); + * e.g. Hibernates.initLazyProperty(user.getGroups()); */ public static void initLazyProperty(Object proxyedPropertyValue) { Hibernate.initialize(proxyedPropertyValue); @@ -24,7 +25,7 @@ public class Hibernates { /** * 从DataSoure中取出connection, 根据connection的metadata中的jdbcUrl判断Dialect类型. - * 仅支持Oracle, H2, MySql,如需更多数据库类型,请仿照此类自行编写。 + * 仅支持Oracle, H2, MySql, PostgreSql, SQLServer,如需更多数据库类型,请仿照此类自行编写。 */ public static String getDialect(DataSource dataSource) { String jdbcUrl = getJdbcUrlFromDataSource(dataSource); @@ -36,6 +37,10 @@ public class Hibernates { return MySQL5InnoDBDialect.class.getName(); } else if (StringUtils.contains(jdbcUrl, ":oracle:")) { return Oracle10gDialect.class.getName(); + } else if (StringUtils.contains(jdbcUrl, ":postgresql:")) { + return PostgreSQL82Dialect.class.getName(); + } else if (StringUtils.contains(jdbcUrl, ":sqlserver:")) { + return SQLServer2008Dialect.class.getName(); } else { throw new IllegalArgumentException("Unknown Database of " + jdbcUrl); }