hibernateProperties.cfg - 从 Java 访问 hibernate 属性



我用XML这样描述我的会话工厂:

>    <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对象但没有成功,无论如何我都可以实现这一点?

试试这段代码

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

相关内容

最新更新