2014-11-14 39 views
0

我在XML這樣描述我的會話工廠Hibernate屬性:hibernateProperties.cfg - 訪問從Java

> <session-factory> 
>   <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
>   <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
>   <property name="hibernate.c3p0.min_size">3</property> 
>   <property name="hibernate.c3p0.max_size">45</property> 
>   <property name="hibernate.c3p0.timeout">300</property><!--seconds--> 
>   <property name="hibernate.c3p0.idle_test_period">10</property><!-- seconds --> 
>   <property name="hibernate.c3p0.acquire_increment">3</property> 
>   <property name="hibernate.c3p0.autoCommitOnClose">true</property> 
>   <property name="hibernate.c3p0.unreturnedConnectionTimeout">60</property> 
>   <property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces">true</property> 
> 
>   
>   <property name="hibernate.connection.provider_class"> 
>    org.hibernate.connection.C3P0ConnectionProvider 
>   </property> 
>   
>   <!--<property name="connection.autoReconnect">true</property>--> 
>   <!--<property name="connection.autoReconnectForPools">true</property>--> 
>   <!--<property name="connection.is-connection-validation-required">true</property>--> 
> 
>   <!-- Use EHCache but not the query cache. --> 
>   <property name="cache.provider_class"> 
>    net.sf.ehcache.hibernate.SingletonEhCacheProvider 
>   </property> 
>   <property name="cache.use_query_cache">false</property> 
>   <property name="cache.use_minimal_puts">false</property> 
> 
>   <!-- Print SQL to stdout. --> 
>   <property name="show_sql">false</property> 
>   <property name="format_sql">true</property> 
>   <property name="CUSTOM">Hello World</property> 
>  </session-factory> 

是否有可能從我的Java代碼訪問CUSTON財產,我試過如下:

Environment.getProperties().getProperty("CUSTOM") 

要麼從sessionFactory對象,但沒有成功,無論如何,我可以實現這一目標?

回答

0

試試這個代碼

Field f = SessionFactoryImpl.class.getDeclaredField("properties"); 
f.setAccessible(true); 
Properties p = (Properties)f.get(sessionFactory); 
Object custom = p.get("CUSTOM");