一尘不染

OSGi +Hibernate

hibernate

而不是将数据库操作分散在四个(osgi)包中,所有操作都在这里稍有不同。我想创建一个负责所有持久性问题的(简单)OSGi捆绑包。我觉得这并不像听起来那么简单,因为“每捆都有唯一的类加载器”。因此,如果有人知道这种问题的解决方案,我将非常感激。


阅读 239

收藏
2020-06-20

共1个答案

一尘不染

(如果您正在使用hibernate注释)

在通知Hibernate捆绑包有关注释类的信息后,保存所有Entities类加载器。

然后在构建SessionFactory之前执行类似的操作。

ClassLoad cl = Thread.currentThread().getContextClassLoader();
try {
 Thread.currentThread().setContextClassLoader(yourClassLoader);
 factory = cfg.buildSessionFactory(); 
}finally {
 Thread.currentThread().setContextClassLoader(cl);  // restore the original class loader
}
2020-06-20