Hibernate的getDialect()方法增加对 sqlserver和postresql的支持

This commit is contained in:
Calvin
2013-07-26 01:17:54 +08:00
parent bd11c6e0be
commit c1b3d8ce37
2 changed files with 10 additions and 4 deletions
@@ -16,7 +16,8 @@ import org.springside.modules.utils.Collections3;
import com.google.common.collect.Lists;
public class DynamicSpecifications {
public static <T> Specification<T> bySearchFilter(final Collection<SearchFilter> filters, final Class<T> clazz) {
public static <T> Specification<T> bySearchFilter(final Collection<SearchFilter> filters, final Class<T> entityClazz) {
return new Specification<T>() {
@Override
public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
@@ -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);
}