我得到了以下情况。我Apache Felix
用作 OSGi 服务实现和Apache Karaf
OSGi 容器。有一个包karaf
应该通过休眠将一些数据保存到数据库中,但我总是得到一个SQLException: No Suitable Driver found.
我部署mysql-connector-bundle
到karaf
. 在我看来,问题是休眠是否导入mysql-driver-packages
应该映射的类或我的类。但我不知道如何解决这个问题。我很熟悉 eclipse rcp ,其中伙伴策略修复了此类问题,对于这个问题是否有任何最佳实践felix
和karaf
?
问问题
886 次
2 回答
2
你用的是什么版本的休眠?只有从 Hibernate 4 开始,hibernate 才知道 OSGi 类加载器,但它仍然没有完整的 OSGi 支持。请参阅例如https://hibernate.onjira.com/browse/HHH-7527,它计划用于 Hibernate 4.2。
我们使用 Gemini JPA 和 eclipselink 作为 OSGi 中的 JPA 提供程序。
在 karaf 生态系统中,有 Aries JPA,主要与 OpenJPA 一起使用。请参阅Apache Aries 托管 JPA 支持哪些 JPA 提供程序?
于 2012-11-08T16:20:41.727 回答
2
Hibernate 无法访问来自其他包的数据和类(至少在 3.x 版中;我不知道版本 4)。只有当所有(使用休眠、pojos、映射文件、所有库的方法)都在同一个包中时,它才能轻松工作。它无法访问其他捆绑包中的资源。
另请参阅我在此线程中的回答。
于 2012-11-08T17:02:28.733 回答