Support automatic Hibernate dialect detection
Use the preferred SessionFactoryImplementor#getDialect call as opposed to the previous Dialect#getDialect approach which required explicitly setting the 'hibernate.dialect' property. Issue: SPR-7396
This commit is contained in:
@@ -39,6 +39,7 @@ import org.hibernate.cfg.Environment;
|
|||||||
import org.hibernate.cfg.NamingStrategy;
|
import org.hibernate.cfg.NamingStrategy;
|
||||||
import org.hibernate.dialect.Dialect;
|
import org.hibernate.dialect.Dialect;
|
||||||
import org.hibernate.engine.FilterDefinition;
|
import org.hibernate.engine.FilterDefinition;
|
||||||
|
import org.hibernate.engine.SessionFactoryImplementor;
|
||||||
import org.hibernate.event.EventListeners;
|
import org.hibernate.event.EventListeners;
|
||||||
import org.hibernate.tool.hbm2ddl.DatabaseMetadata;
|
import org.hibernate.tool.hbm2ddl.DatabaseMetadata;
|
||||||
import org.hibernate.transaction.JTATransactionFactory;
|
import org.hibernate.transaction.JTATransactionFactory;
|
||||||
@@ -930,13 +931,14 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen
|
|||||||
configTimeDataSourceHolder.set(dataSource);
|
configTimeDataSourceHolder.set(dataSource);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
HibernateTemplate hibernateTemplate = new HibernateTemplate(getSessionFactory());
|
SessionFactory sessionFactory = getSessionFactory();
|
||||||
|
final Dialect dialect = ((SessionFactoryImplementor) sessionFactory).getDialect();
|
||||||
|
HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory);
|
||||||
hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER);
|
hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER);
|
||||||
hibernateTemplate.execute(
|
hibernateTemplate.execute(
|
||||||
new HibernateCallback<Object>() {
|
new HibernateCallback<Object>() {
|
||||||
public Object doInHibernate(Session session) throws HibernateException, SQLException {
|
public Object doInHibernate(Session session) throws HibernateException, SQLException {
|
||||||
Connection con = session.connection();
|
Connection con = session.connection();
|
||||||
Dialect dialect = Dialect.getDialect(getConfiguration().getProperties());
|
|
||||||
DatabaseMetadata metadata = new DatabaseMetadata(con, dialect);
|
DatabaseMetadata metadata = new DatabaseMetadata(con, dialect);
|
||||||
String[] sql = getConfiguration().generateSchemaUpdateScript(dialect, metadata);
|
String[] sql = getConfiguration().generateSchemaUpdateScript(dialect, metadata);
|
||||||
executeSchemaScript(con, sql);
|
executeSchemaScript(con, sql);
|
||||||
@@ -973,13 +975,14 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen
|
|||||||
configTimeDataSourceHolder.set(dataSource);
|
configTimeDataSourceHolder.set(dataSource);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
HibernateTemplate hibernateTemplate = new HibernateTemplate(getSessionFactory());
|
SessionFactory sessionFactory = getSessionFactory();
|
||||||
|
final Dialect dialect = ((SessionFactoryImplementor) sessionFactory).getDialect();
|
||||||
|
HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory);
|
||||||
hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER);
|
hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER);
|
||||||
hibernateTemplate.execute(
|
hibernateTemplate.execute(
|
||||||
new HibernateCallback<Object>() {
|
new HibernateCallback<Object>() {
|
||||||
public Object doInHibernate(Session session) throws HibernateException, SQLException {
|
public Object doInHibernate(Session session) throws HibernateException, SQLException {
|
||||||
Connection con = session.connection();
|
Connection con = session.connection();
|
||||||
Dialect dialect = Dialect.getDialect(getConfiguration().getProperties());
|
|
||||||
DatabaseMetadata metadata = new DatabaseMetadata(con, dialect, false);
|
DatabaseMetadata metadata = new DatabaseMetadata(con, dialect, false);
|
||||||
getConfiguration().validateSchema(dialect, metadata);
|
getConfiguration().validateSchema(dialect, metadata);
|
||||||
return null;
|
return null;
|
||||||
@@ -1009,12 +1012,13 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen
|
|||||||
*/
|
*/
|
||||||
public void dropDatabaseSchema() throws DataAccessException {
|
public void dropDatabaseSchema() throws DataAccessException {
|
||||||
logger.info("Dropping database schema for Hibernate SessionFactory");
|
logger.info("Dropping database schema for Hibernate SessionFactory");
|
||||||
HibernateTemplate hibernateTemplate = new HibernateTemplate(getSessionFactory());
|
SessionFactory sessionFactory = getSessionFactory();
|
||||||
|
final Dialect dialect = ((SessionFactoryImplementor) sessionFactory).getDialect();
|
||||||
|
HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory);
|
||||||
hibernateTemplate.execute(
|
hibernateTemplate.execute(
|
||||||
new HibernateCallback<Object>() {
|
new HibernateCallback<Object>() {
|
||||||
public Object doInHibernate(Session session) throws HibernateException, SQLException {
|
public Object doInHibernate(Session session) throws HibernateException, SQLException {
|
||||||
Connection con = session.connection();
|
Connection con = session.connection();
|
||||||
Dialect dialect = Dialect.getDialect(getConfiguration().getProperties());
|
|
||||||
String[] sql = getConfiguration().generateDropSchemaScript(dialect);
|
String[] sql = getConfiguration().generateDropSchemaScript(dialect);
|
||||||
executeSchemaScript(con, sql);
|
executeSchemaScript(con, sql);
|
||||||
return null;
|
return null;
|
||||||
@@ -1044,12 +1048,13 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen
|
|||||||
configTimeDataSourceHolder.set(dataSource);
|
configTimeDataSourceHolder.set(dataSource);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
HibernateTemplate hibernateTemplate = new HibernateTemplate(getSessionFactory());
|
SessionFactory sessionFactory = getSessionFactory();
|
||||||
|
final Dialect dialect = ((SessionFactoryImplementor) sessionFactory).getDialect();
|
||||||
|
HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory);
|
||||||
hibernateTemplate.execute(
|
hibernateTemplate.execute(
|
||||||
new HibernateCallback<Object>() {
|
new HibernateCallback<Object>() {
|
||||||
public Object doInHibernate(Session session) throws HibernateException, SQLException {
|
public Object doInHibernate(Session session) throws HibernateException, SQLException {
|
||||||
Connection con = session.connection();
|
Connection con = session.connection();
|
||||||
Dialect dialect = Dialect.getDialect(getConfiguration().getProperties());
|
|
||||||
String[] sql = getConfiguration().generateSchemaCreationScript(dialect);
|
String[] sql = getConfiguration().generateSchemaCreationScript(dialect);
|
||||||
executeSchemaScript(con, sql);
|
executeSchemaScript(con, sql);
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user