EntityManagerFactoryBuilder

EntityManagerFactoryBuilder

我正在将Eclipse 3.7与Eclipse Gemini JPA / DBAccess一起使用。我实现了一个声明式ServiceComponent,它引用了EntityManagerBuilderFactory。 bind方法看起来像这样:

public void bindEntityManagerFactoryBuilder(EntityManagerFactoryBuilder emfBuilder) {
    emfFactoryBuilders.add(emfBuilder);
}


但是,我需要ServiceReference来获取此服务的属性,例如:

    ServiceReference ref = ...
    String unitName = (String)ref.getProperty(EntityManagerFactoryBuilder.JPA_UNIT_NAME);


我是否需要在ServiceRegistry中搜索此ServiceReference,还是有一个更优雅的方法?

干杯,
木木

最佳答案

如果您使用的是Declarative Services 1.1(最新的规范版本),则可以将bind方法的签名更改为:

public void bindEntityManagerFactoryBuilder(EntityManagerFactoryBuilder emfBuilder, Map properties)


该映射将包含绑定服务的服务属性。

07-27 15:03