[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2372) Allow tooling to create Settings via SettingsFactory without contacting the db

Max Rydahl Andersen (JIRA) noreply at atlassian.com
Fri Jan 19 09:23:44 EST 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2372?page=comments#action_25848 ] 

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.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira




More information about the hibernate-issues mailing list