⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settingsfactory.java

📁 hibernate-3.0.5 中文文档
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		settings.setOrderUpdatesEnabled(orderUpdates);				//Query parser settings:				settings.setQueryTranslatorFactory( createQueryTranslatorFactory(properties) );		Map querySubstitutions = PropertiesHelper.toMap(Environment.QUERY_SUBSTITUTIONS, " ,=;:\n\t\r\f", properties);		log.info("Query language substitutions: " + querySubstitutions);		settings.setQuerySubstitutions(querySubstitutions);				// Second-level / query cache:		boolean useSecondLevelCache = PropertiesHelper.getBoolean(Environment.USE_SECOND_LEVEL_CACHE, properties, true);		log.info( "Second-level cache: " + enabledDisabled(useSecondLevelCache) );		settings.setSecondLevelCacheEnabled(useSecondLevelCache);		boolean useQueryCache = PropertiesHelper.getBoolean(Environment.USE_QUERY_CACHE, properties);		log.info( "Query cache: " + enabledDisabled(useQueryCache) );		settings.setQueryCacheEnabled(useQueryCache);		if ( useSecondLevelCache || useQueryCache ) {			// The cache provider is needed when we either have second-level cache enabled			// or query cache enabled.  Note that useSecondLevelCache is enabled by default			settings.setCacheProvider( createCacheProvider( properties ) );		}		else {			settings.setCacheProvider( new NoCacheProvider() );		}		boolean useMinimalPuts = PropertiesHelper.getBoolean(				Environment.USE_MINIMAL_PUTS, properties, settings.getCacheProvider().isMinimalPutsEnabledByDefault() 		);		log.info( "Optimize cache for minimal puts: " + enabledDisabled(useMinimalPuts) );		settings.setMinimalPutsEnabled(useMinimalPuts);		String prefix = properties.getProperty(Environment.CACHE_REGION_PREFIX);		if ( StringHelper.isEmpty(prefix) ) prefix=null;		if (prefix!=null) log.info("Cache region prefix: "+ prefix);		settings.setCacheRegionPrefix(prefix);		boolean useStructuredCacheEntries = PropertiesHelper.getBoolean(Environment.USE_STRUCTURED_CACHE, properties, false);		log.info( "Structured second-level cache entries: " + enabledDisabled(useStructuredCacheEntries) );		settings.setStructuredCacheEntriesEnabled(useStructuredCacheEntries);		if (useQueryCache) settings.setQueryCacheFactory( createQueryCacheFactory(properties) );				//SQL Exception converter:				SQLExceptionConverter sqlExceptionConverter;		try {			sqlExceptionConverter = SQLExceptionConverterFactory.buildSQLExceptionConverter( dialect, properties );		}		catch(HibernateException e) {			log.warn("Error building SQLExceptionConverter; using minimal converter");			sqlExceptionConverter = SQLExceptionConverterFactory.buildMinimalSQLExceptionConverter();		}		settings.setSQLExceptionConverter(sqlExceptionConverter);		//Statistics and logging:		boolean showSql = PropertiesHelper.getBoolean(Environment.SHOW_SQL, properties);		if (showSql) log.info("Echoing all SQL to stdout");		settings.setShowSqlEnabled(showSql);		boolean useStatistics = PropertiesHelper.getBoolean(Environment.GENERATE_STATISTICS, properties);		log.info( "Statistics: " + enabledDisabled(useStatistics) );		settings.setStatisticsEnabled(useStatistics);				boolean useIdentifierRollback = PropertiesHelper.getBoolean(Environment.USE_IDENTIFIER_ROLLBACK, properties);		log.info( "Deleted entity synthetic identifier rollback: " + enabledDisabled(useIdentifierRollback) );		settings.setIdentifierRollbackEnabled(useIdentifierRollback);				//Schema export:				String autoSchemaExport = properties.getProperty(Environment.HBM2DDL_AUTO);		if ( "update".equals(autoSchemaExport) ) settings.setAutoUpdateSchema(true);		if ( "create".equals(autoSchemaExport) ) settings.setAutoCreateSchema(true);		if ( "create-drop".equals(autoSchemaExport) ) {			settings.setAutoCreateSchema(true);			settings.setAutoDropSchema(true);		}		EntityMode defaultEntityMode = EntityMode.parse( properties.getProperty( Environment.DEFAULT_ENTITY_MODE ) );		log.info( "Default entity-mode: " + defaultEntityMode );		settings.setDefaultEntityMode( defaultEntityMode );		return settings;	}	private int getDatabaseMajorVersion(DatabaseMetaData meta) {		try {			Method gdbmvMethod = DatabaseMetaData.class.getMethod("getDatabaseMajorVersion", null);			return ( (Integer) gdbmvMethod.invoke(meta, null) ).intValue();		}		catch (NoSuchMethodException nsme) {			return 0;		}		catch (Throwable t) {			log.debug("could not get database version from JDBC metadata");			return 0;		}	}	private static final String enabledDisabled(boolean value) {		return value ? "enabled" : "disabled";	}		protected QueryCacheFactory createQueryCacheFactory(Properties properties) {		String queryCacheFactoryClassName = PropertiesHelper.getString(				Environment.QUERY_CACHE_FACTORY, properties, "org.hibernate.cache.StandardQueryCacheFactory"		);		log.info("Query cache factory: " + queryCacheFactoryClassName);		try {			return (QueryCacheFactory) ReflectHelper.classForName(queryCacheFactoryClassName).newInstance();		}		catch (Exception cnfe) {			throw new HibernateException("could not instantiate QueryCacheFactory: " + queryCacheFactoryClassName, cnfe);		}	}		protected CacheProvider createCacheProvider(Properties properties) {		String cacheClassName = PropertiesHelper.getString(				Environment.CACHE_PROVIDER, properties, "org.hibernate.cache.EhCacheProvider"		);		log.info("Cache provider: " + cacheClassName);		try {			return (CacheProvider) ReflectHelper.classForName(cacheClassName).newInstance();		}		catch (Exception cnfe) {			throw new HibernateException("could not instantiate CacheProvider: " + cacheClassName, cnfe);		}	}		protected QueryTranslatorFactory createQueryTranslatorFactory(Properties properties) {		String className = PropertiesHelper.getString(				Environment.QUERY_TRANSLATOR, properties, "org.hibernate.hql.ast.ASTQueryTranslatorFactory"		);		log.info("Query translator: " + className);		try {			return (QueryTranslatorFactory) ReflectHelper.classForName(className).newInstance();		}		catch (Exception cnfe) {			throw new HibernateException("could not instantiate QueryTranslatorFactory: " + className, cnfe);		}	}		protected BatcherFactory createBatcherFactory(Properties properties, int batchSize) {		String batcherClass = properties.getProperty(Environment.BATCH_STRATEGY);		if (batcherClass==null) {			return batchSize==0 ?					(BatcherFactory) new NonBatchingBatcherFactory() :					(BatcherFactory) new BatchingBatcherFactory();		}		else {			log.info("Batcher factory: " + batcherClass);			try {				return (BatcherFactory) ReflectHelper.classForName(batcherClass).newInstance();			}			catch (Exception cnfe) {				throw new HibernateException("could not instantiate BatcherFactory: " + batcherClass, cnfe);			}		}	}		protected ConnectionProvider createConnectionProvider(Properties properties) {		return ConnectionProviderFactory.newConnectionProvider(properties);	}		protected TransactionFactory createTransactionFactory(Properties properties) {		return TransactionFactoryFactory.buildTransactionFactory(properties);	}		protected TransactionManagerLookup createTransactionManagerLookup(Properties properties) {		return TransactionManagerLookupFactory.getTransactionManagerLookup(properties);			}	private Dialect determineDialect(Properties props, String databaseName, int databaseMajorVersion) {		return DialectFactory.buildDialect( props, databaseName, databaseMajorVersion );	}		private static final Properties DIALECTS = new Properties();	static {		DIALECTS.put( "HSQL Database Engine", "org.hibernate.dialect.HSQLDialect" );		DIALECTS.put( "DB2/NT", "org.hibernate.dialect.DB2Dialect" );		DIALECTS.put( "MySQL", "org.hibernate.dialect.MySQLDialect" );		DIALECTS.put( "Oracle", "org.hibernate.dialect.Oracle9Dialect" );		DIALECTS.put( "PostgreSQL", "org.hibernate.dialect.PostgreSQLDialect" );		DIALECTS.put( "Microsoft SQL Server Database", "org.hibernate.dialect.SQLServerDialect" );		DIALECTS.put( "Sybase SQL Server", "org.hibernate.dialect.SybaseDialect" );		//TODO: etc...	}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -