Ale*_*kov 2 hibernate jta web-applications
我正在使用hibernate和jpa,并使用persistence.xml配置是否可以从Web应用程序获取hibernate连接属性?
谢谢.
可能没有使用反射并依赖Hibernate不会在将来破坏你的代码.您需要从SessionFactory获取属性,但它不是公共的,因此您必须通过反射找到Field,然后使用field.setAccessible来访问它.就像是:
Field f = SessionFactoryImpl.class.getDeclaredField("properties");
f.setAccessible(true);
Properties p = (Properties)f.get(sessionFactory);
Run Code Online (Sandbox Code Playgroud)
然后使用Environment中的常量来提取相关设置.如果您正在寻找实际的数据库连接设置并且您的应用程序正在使用jndi,那么您可以使用jndi名称来获取DataSource并检查它以获取连接信息.
对于这种类型的东西,我通常只使用调试器,设置断点,然后围绕变量,直到找到信息的位置; 然后看看它是否公开可用,如果没有,请使用反射来实现它.但是没有保证.
| 归档时间: |
|
| 查看次数: |
7526 次 |
| 最近记录: |