2008-12-11 72 views

回答

0

你可以坚持使用标准的hibernate教程,比如hibernate.org或Gaven Kings提供的文档,在eclipse rcp项目中使用hibernate。

最简单的方法是将您的Hibernate相关代码和您的配置包含在您当前开发的插件中。

因此你的插件必须依赖于jar文件,每个hibernate项目都依赖于它。你也可以通过一个独立的插件来提供这些库,并简单地导出它们。

但是您必须记住,hibernate会大量使用反射,并且持久性管理器必须可以访问持久化类。

还有一个非常好的教程,用于集成休眠作为一个单独的插件http://entwickler.de/zonen/portale/psecom,id,101,online,1082,.html,但不幸的是它只在德国。

1

我会创建一个hibernate插件,它公开所有hibernate jar文件并导出包含的类。然后我的配置和数据将在另一个取决于休眠的插件中。然后,由于hibernate明天使用反射,因此Hibernate插件需要能够从依赖它的插件中加载类。为此,您需要使用Eclipse-BuddyPolicy指令。 Check this documentation on classloading on eclipse that mentions BuddyPolicy

我建立了一个使用这种技术的Kodo JDO插件,它工作得很好。从我的Manifest.mf中抽取样品

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: Solarmetric Kodo 
Bundle-SymbolicName: com.solarmetric.kodo 
Bundle-Activator: com.solarmetric.kodo.KodoPlugin 
Bundle-Localization: plugin 
Require-Bundle: org.eclipse.core.runtime 
Eclipse-AutoStart: true 
Eclipse-BuddyPolicy: global 
Export-Package: com.solarmetric.ant, 
com.solarmetric.apache.commons.collections, 
com.solarmetric.apache.commons.collections.buffer, 
com.solarmetric.apache.commons.collections.collection, 
com.solarmetric.apache.commons.collections.functors, 
com.solarmetric.apache.commons.collections.iterators, 
com.solarmetric.apache.commons.collections.keyvalue,