Hibernate的getDialect()方法增加对 sqlserver和postresql的支持
This commit is contained in:
+2
-1
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user