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

📄 settingsfactory.java

📁 一个Java持久层类库
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		settings.setOrderInsertsEnabled( orderInserts );				//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);		boolean jpaqlCompliance = PropertiesHelper.getBoolean( Environment.JPAQL_STRICT_COMPLIANCE, properties, false );		settings.setStrictJPAQLCompliance( jpaqlCompliance );		log.info( "JPA-QL strict compliance: " + enabledDisabled( jpaqlCompliance ) );				// 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);		// 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.setRegionFactory( createRegionFactory( properties, ( useSecondLevelCache || useQueryCache ) ) );		boolean useMinimalPuts = PropertiesHelper.getBoolean(				Environment.USE_MINIMAL_PUTS, properties, settings.getRegionFactory().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 formatSql = PropertiesHelper.getBoolean(Environment.FORMAT_SQL, properties);//		settings.setFormatSqlEnabled(formatSql);		settings.setSqlStatementLogger( new SQLStatementLogger( showSql, formatSql ) );		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 ( "validate".equals(autoSchemaExport) ) settings.setAutoValidateSchema(true);		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 );		boolean namedQueryChecking = PropertiesHelper.getBoolean( Environment.QUERY_STARTUP_CHECKING, properties, true );		log.info( "Named query checking : " + enabledDisabled( namedQueryChecking ) );		settings.setNamedQueryStartupCheckingEnabled( namedQueryChecking );//		String provider = properties.getProperty( Environment.BYTECODE_PROVIDER );//		log.info( "Bytecode provider name : " + provider );//		BytecodeProvider bytecodeProvider = buildBytecodeProvider( provider );//		settings.setBytecodeProvider( bytecodeProvider );		return settings;	}	protected BytecodeProvider buildBytecodeProvider(String providerName) {		if ( "javassist".equals( providerName ) ) {			return new org.hibernate.bytecode.javassist.BytecodeProviderImpl();		}		else if ( "cglib".equals( providerName ) ) {			return new org.hibernate.bytecode.cglib.BytecodeProviderImpl();		}		else {			log.debug( "using cglib as bytecode provider by default" );			return new org.hibernate.bytecode.cglib.BytecodeProviderImpl();		}	}	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 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 RegionFactory createRegionFactory(Properties properties, boolean cachingEnabled) {		String regionFactoryClassName = PropertiesHelper.getString( Environment.CACHE_REGION_FACTORY, properties, null );		if ( regionFactoryClassName == null && cachingEnabled ) {			String providerClassName = PropertiesHelper.getString( Environment.CACHE_PROVIDER, properties, null );			if ( providerClassName != null ) {				// legacy behavior, apply the bridge...				regionFactoryClassName = RegionFactoryCacheProviderBridge.class.getName();			}		}		if ( regionFactoryClassName == null ) {			regionFactoryClassName = DEF_CACHE_REG_FACTORY;		}		log.info( "Cache region factory : " + regionFactoryClassName );		try {			return ( RegionFactory ) ReflectHelper.classForName( regionFactoryClassName )					.getConstructor( new Class[] { Properties.class } )					.newInstance( new Object[] { properties } );		}		catch ( Exception e ) {			throw new HibernateException( "could not instantiate RegionFactory [" + regionFactoryClassName + "]", e );		}	}		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 );	}	}

⌨️ 快捷键说明

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