4

我将 Eclipse 3.7 与 Eclipse Gemini JPA / DBAccess 一起使用。我实现了一个引用 EntityManagerBuilderFactory 的声明性 ServiceComponent。绑定方法如下所示:

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

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

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

我是否必须在 ServiceRegistry 中搜索此 ServiceReference,还是有更优雅的方法?

干杯,穆基

4

2 回答 2

10

如果您使用的是声明式服务 1.1(最新规范版本),您可以将绑定方法的签名更改为:

public void bindEntityManagerFactoryBuilder(EntityManagerFactoryBuilder emfBuilder, Map properties)

该地图将包含绑定服务的服务属性。

于 2011-09-13T13:02:41.100 回答
1

如果您想访问 ServiceReference 对象,您可以使用这种方式(它受 1.0 和 1.1 DS 支持):

public void bindEntityManagerFactoryBuilder(ServiceReference reference)
于 2011-09-14T02:37:37.487 回答