[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2372?page=c...
]
Max Rydahl Andersen commented on HHH-2372:
------------------------------------------
Index:
C:/work/os/hibernate/Branch_3_2/Hibernate3/src/org/hibernate/cfg/SettingsFactory.java
===================================================================
---
C:/work/os/hibernate/Branch_3_2/Hibernate3/src/org/hibernate/cfg/SettingsFactory.java (revision
10998)
+++
C:/work/os/hibernate/Branch_3_2/Hibernate3/src/org/hibernate/cfg/SettingsFactory.java (working
copy)
@@ -72,45 +72,48 @@
boolean metaReportsDDLCausesTxnCommit = false;
boolean metaReportsDDLInTxnSupported = true;
- try {
- Connection conn = connections.getConnection();
+ boolean useDatabaseMetaData =
PropertiesHelper.getBoolean("hibernate.use_database_metadata", props, true);
+ if(useDatabaseMetaData) {
try {
- DatabaseMetaData meta = conn.getMetaData();
- databaseName = meta.getDatabaseProductName();
- databaseMajorVersion = getDatabaseMajorVersion(meta);
- log.info("RDBMS: " + databaseName + ", version: " +
meta.getDatabaseProductVersion() );
- log.info("JDBC driver: " + meta.getDriverName() + ", version: " +
meta.getDriverVersion() );
-
- metaSupportsScrollable =
meta.supportsResultSetType(ResultSet.TYPE_SCROLL_INSENSITIVE);
- metaSupportsBatchUpdates = meta.supportsBatchUpdates();
- metaReportsDDLCausesTxnCommit = meta.dataDefinitionCausesTransactionCommit();
- metaReportsDDLInTxnSupported = !meta.dataDefinitionIgnoredInTransactions();
-
- if ( Environment.jvmSupportsGetGeneratedKeys() ) {
- try {
- Boolean result = (Boolean)
DatabaseMetaData.class.getMethod("supportsGetGeneratedKeys", null)
+ Connection conn = connections.getConnection();
+ try {
+ DatabaseMetaData meta = conn.getMetaData();
+ databaseName = meta.getDatabaseProductName();
+ databaseMajorVersion = getDatabaseMajorVersion(meta);
+ log.info("RDBMS: " + databaseName + ", version: " +
meta.getDatabaseProductVersion() );
+ log.info("JDBC driver: " + meta.getDriverName() + ", version: "
+ meta.getDriverVersion() );
+
+ metaSupportsScrollable =
meta.supportsResultSetType(ResultSet.TYPE_SCROLL_INSENSITIVE);
+ metaSupportsBatchUpdates = meta.supportsBatchUpdates();
+ metaReportsDDLCausesTxnCommit = meta.dataDefinitionCausesTransactionCommit();
+ metaReportsDDLInTxnSupported = !meta.dataDefinitionIgnoredInTransactions();
+
+ if ( Environment.jvmSupportsGetGeneratedKeys() ) {
+ try {
+ Boolean result = (Boolean)
DatabaseMetaData.class.getMethod("supportsGetGeneratedKeys", null)
.invoke(meta, null);
- metaSupportsGetGeneratedKeys = result.booleanValue();
+ metaSupportsGetGeneratedKeys = result.booleanValue();
+ }
+ catch (AbstractMethodError ame) {
+ metaSupportsGetGeneratedKeys = false;
+ }
+ catch (Exception e) {
+ metaSupportsGetGeneratedKeys = false;
+ }
}
- catch (AbstractMethodError ame) {
- metaSupportsGetGeneratedKeys = false;
- }
- catch (Exception e) {
- metaSupportsGetGeneratedKeys = false;
- }
+
}
-
+ finally {
+ connections.closeConnection(conn);
+ }
}
- finally {
- connections.closeConnection(conn);
+ catch (SQLException sqle) {
+ log.warn("Could not obtain connection metadata", sqle);
}
+ catch (UnsupportedOperationException uoe) {
+ // user supplied JDBC connections
+ }
}
- catch (SQLException sqle) {
- log.warn("Could not obtain connection metadata", sqle);
- }
- catch (UnsupportedOperationException uoe) {
- // user supplied JDBC connections
- }
settings.setDataDefinitionImplicitCommit( metaReportsDDLCausesTxnCommit );
settings.setDataDefinitionInTransactionSupported( metaReportsDDLInTxnSupported );
Allow tooling to create Settings via SettingsFactory without
contacting the db
------------------------------------------------------------------------------
Key: HHH-2372
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2372
Project: Hibernate3
Type: Improvement
Components: core
Versions: 3.2.1
Reporter: Max Rydahl Andersen
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira