而不是将数据库操作分散在四个(osgi)包中,所有这些操作都略有不同.我想创建一个(简单的)OSGi包,负责所有持久性问题.我觉得这并不像听起来那么简单,因为"每捆独特的类加载器"的东西.所以我真的很感激,如果有人知道这种问题的解决方案.
我可以通过两种方式来解决类加载问题.
(如果您使用 Hibernate Annotations)
当 Hibernate 包获知某个带注释的类时,保存所有实体类加载器。
然后在构建 SessionFactory 之前执行类似的操作。
ClassLoad cl = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(yourClassLoader);
factory = cfg.buildSessionFactory();
}finally {
Thread.currentThread().setContextClassLoader(cl); // restore the original class loader
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6908 次 |
| 最近记录: |