下面列出了org.hibernate.cfg.Configuration#getProperty ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static Configuration setDialectPropertyToConfiguration() {
Configuration conf = new Configuration();
File hibernateConfigurationFileFile = DAOConfig.getHibernateConfigurationFileFile();
if (hibernateConfigurationFileFile != null) {
// for testing
conf = conf.configure(hibernateConfigurationFileFile);
} else {
conf = conf.configure(DAOConfig.getHibernateConfigurationFile());
}
String figuredOutValue = conf.getProperty(PROPERTY_DIALECT);
if (figuredOutValue != null) {
logger.info("Hibernate configuration set dialect to " + figuredOutValue);
} else {
logger.warn("Property hibernate.dialect not set! Trying to figure out what dialect needs to be used...");
determineDialect(conf);
}
return conf;
}
public UnlimitedMessageColumnsMigration(Session session, Configuration configuration) throws URISyntaxException {
this.session = session;
String dialect = configuration.getProperty(AvailableSettings.DIALECT);
this.nativeDbQueries = NativeDbQueries.fromDialect(dialect);
String url = configuration.getProperty(AvailableSettings.URL);
URI full = new URI(url);
URI uri = new URI(full.getSchemeSpecificPart());
this.databaseName = uri.getPath().replace("/", "");
}
/**
* Try to figure out which Hibernate dialect to use.
*
* @param conf Actual Hibernate configuration
*/
private static void determineDialect(Configuration conf) {
String datasourceJndi = conf.getProperty(PROPERTY_DATASOURCE_JNDI);
if (datasourceJndi == null) {
throw new IllegalStateException("The property hibernate.connection.datasource is not set in file");
}
String figuredOutValue = getDialect(datasourceJndi);
logger.warn("Property hibernate.dialect set to " + figuredOutValue);
conf.setProperty(PROPERTY_DIALECT, figuredOutValue);
}
public void init()
{
Configuration hibernateConfiguration = hibernateConfigurationProvider.getConfiguration();
String dialect = hibernateConfiguration.getProperty( KEY_DIALECT );
statementDialect = dialectMap.get( dialect );
if ( statementDialect == null )
{
throw new RuntimeException( "Unsupported dialect: " + dialect );
}
}
public static void fixSchemaInFormulas(Configuration cfg) throws ClassNotFoundException {
cfg.buildMappings();
Class dialect = Class.forName(cfg.getProperty("dialect"));
String schema = cfg.getProperty("default_schema");
for (Iterator i=cfg.getClassMappings();i.hasNext();) {
PersistentClass pc = (PersistentClass)i.next();
for (Iterator j=pc.getPropertyIterator();j.hasNext();) {
Property p = (Property)j.next();
for (Iterator k=p.getColumnIterator();k.hasNext();) {
Selectable c = (Selectable)k.next();
if (c instanceof Formula) {
Formula f = (Formula)c;
boolean updated = false;
if (schema != null && f.getFormula() != null && f.getFormula().indexOf("%SCHEMA%")>=0) {
f.setFormula(f.getFormula().replaceAll("%SCHEMA%", schema));
sLog.debug("Schema updated in "+pc.getClassName()+"."+p.getName()+" to "+f.getFormula());
}
if (f.getFormula()!=null && (f.getFormula().indexOf("%TRUE%")>=0 || f.getFormula().indexOf("%FALSE%")>=0)) {
if (isPostgress(dialect)) {
f.setFormula(f.getFormula().replaceAll("%TRUE%", "'t'").replaceAll("%FALSE%", "'f'"));
} else {
f.setFormula(f.getFormula().replaceAll("%TRUE%", "1").replaceAll("%FALSE%", "0"));
}
}
if (updated)
sLog.debug("Schema updated in "+pc.getClassName()+"."+p.getName()+" to "+f.getFormula());
}
}
}
}
}
@Override
protected void configure(Configuration configuration, ServiceRegistry registry) {
String prefix = configuration.getProperty("hibernate.prefix");
if (prefix != null) {
configuration.setPhysicalNamingStrategy(new RobeHibernateNamingStrategy(prefix));
LOGGER.info("Table Prefix: ", prefix);
}
}
public void integrate(Configuration configuration, SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) {
try {
ConfigurationHelper.setCurrentSessionFactory(sessionFactory);
String isEnabled = configuration.getProperty(REGISTER_USERTYPES_KEY);
String javaZone = configuration.getProperty(DEFAULT_JAVAZONE_KEY);
String databaseZone = configuration.getProperty(DEFAULT_DATABASEZONE_KEY);
String seed = configuration.getProperty(DEFAULT_SEED_KEY);
String currencyCode = configuration.getProperty(DEFAULT_CURRENCYCODE_KEY);
String jdbc42Apis = configuration.getProperty(JDBC42_API_KEY);
configureDefaultProperties(sessionFactory, javaZone, databaseZone, seed, currencyCode, jdbc42Apis);
if (isEnabled != null && Boolean.valueOf(isEnabled)) {
autoRegisterUsertypes(configuration);
}
final boolean use42Api = use42Api(configuration.getProperty(JDBC42_API_KEY), sessionFactory);
ConfigurationHelper.setUse42Api(sessionFactory, use42Api);
// doIntegrate(configuration, sessionFactory, serviceRegistry);
} finally {
ConfigurationHelper.setCurrentSessionFactory(null);
}
}
public void initialize(Configuration cfg){
contextID = cfg.getProperty(Environment.JACC_CONTEXTID);
}
public void initialize(Configuration cfg){
contextID = cfg.getProperty(Environment.JACC_CONTEXTID);
}
public void initialize(Configuration cfg){
contextID = cfg.getProperty(Environment.JACC_CONTEXTID);
}
public void initialize(Configuration cfg){
contextID = cfg.getProperty(Environment.JACC_CONTEXTID);
}
public static void configure(Configuration config) {
sGenClass = config.getProperty("tmtbl.uniqueid.generator");
if (sGenClass==null) sGenClass = "org.hibernate.id.SequenceGenerator";
sDefaultSchema = config.getProperty("default_schema");
sNormalizer = config.createMappings().getObjectNameNormalizer();
}
/**
* Create a SessionFactory, loading the hbm.xml files from the specified
* location.
* @param packageNames Package name to be searched.
*/
private void createSessionFactory() {
if (sessionFactory != null && !sessionFactory.isClosed()) {
return;
}
List<String> hbms = new LinkedList<String>();
for (Iterator<String> iter = packageNames.iterator(); iter.hasNext();) {
String pn = iter.next();
hbms.addAll(FinderFactory.getFinder(pn).find("hbm.xml"));
if (LOG.isDebugEnabled()) {
LOG.debug("Found: " + hbms);
}
}
try {
Configuration config = new Configuration();
/*
* Let's ask the RHN Config for all properties that begin with
* hibernate.*
*/
LOG.info("Adding hibernate properties to hibernate Configuration");
Properties hibProperties = Config.get().getNamespaceProperties(
"hibernate");
hibProperties.put("hibernate.connection.username",
Config.get()
.getString(ConfigDefaults.DB_USER));
hibProperties.put("hibernate.connection.password",
Config.get()
.getString(ConfigDefaults.DB_PASSWORD));
hibProperties.put("hibernate.connection.url",
ConfigDefaults.get().getJdbcConnectionString());
config.addProperties(hibProperties);
// Force the use of our txn factory
if (config.getProperty(Environment.TRANSACTION_STRATEGY) != null) {
throw new IllegalArgumentException("The property " +
Environment.TRANSACTION_STRATEGY +
" can not be set in a configuration file;" +
" it is set to a fixed value by the code");
}
for (Iterator<String> i = hbms.iterator(); i.hasNext();) {
String hbmFile = i.next();
if (LOG.isDebugEnabled()) {
LOG.debug("Adding resource " + hbmFile);
}
config.addResource(hbmFile);
}
if (configurators != null) {
for (Iterator<Configurator> i = configurators.iterator(); i
.hasNext();) {
Configurator c = i.next();
c.addConfig(config);
}
}
// add empty varchar warning interceptor
EmptyVarcharInterceptor interceptor = new EmptyVarcharInterceptor();
interceptor.setAutoConvert(true);
config.setInterceptor(interceptor);
sessionFactory = config.buildSessionFactory();
}
catch (HibernateException e) {
LOG.error("FATAL ERROR creating HibernateFactory", e);
}
}
public static String getDialect() {
logger.info("Initializing hibernate Session Factory Described by [" + DAOConfig.getHibernateConfigurationFile() + "]");
Configuration conf = setDialectPropertyToConfiguration();
return conf.getProperty(PROPERTY_DIALECT);
}