我正在使用 hibernate 和 jpa,它是用 persistence.xml 配置的
是否可以从 Web 应用程序获取休眠连接属性?
Thanks.
如果不使用反射并依靠 Hibernate 来保证将来不会破坏您的代码,可能就不行了。您需要从 SessionFactory 获取属性,但它不是公共的,因此您必须通过反射找到 Field,然后使用 field.setAccessible 来访问它。就像是:
Field f = SessionFactoryImpl.class.getDeclaredField("properties");
f.setAccessible(true);
Properties p = (Properties)f.get(sessionFactory);
然后使用Environment中的常量拉出相关设置。如果您正在查找实际的数据库连接设置并且您的应用程序正在使用 jndi,那么您可以使用 jndi 名称来获取数据源并检查它以获取连接信息。
对于这种类型的事情,我通常只使用调试器,设置断点,然后浏览变量,直到找到信息所在;然后查看它是否是公开可用的,如果不是,则使用反射来获取它。但没有任何保证。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)