4

ManagedConnectionFactory 実装で複数の @ConnectionDefinitions を使用するユースケースを示す例が見つかりません。私を混乱させるのは、単一の @ConnectionDefinition アノテーションでは、定義ごとに @ConfigProperty を提供できないことです。@ConfigProperty のみを使用して、ManagedConnectionFactory のすべてのインスタンスのデフォルト プロパティを設定できます。すべての接続定義は、異なる ConnectionFactory インターフェースを使用する必要があります。したがって、次のようなことをしたと仮定します。

@ConnectionDefinitions(value = { 
    @ConnectionDefinition(
            connection = com.company.product.connector.MyConnection.class, 
            connectionFactory = com.company.product.connector.ConnectionFactory1.class, 
            connectionFactoryImpl = com.company.product.connector.ConnectionFactory1Impl.class, 
            connectionImpl = com.company.product.connector.MyConnectionImpl.class
    )

    @ConnectionDefinition(
            connection = com.company.product.connector.MyConnection.class, 
            connectionFactory = com.company.product.connector.ConnectionFactory2.class, 
            connectionFactoryImpl = com.company.product.connector.ConnectionFactory2Impl.class, 
            connectionImpl = com.company.product.connector.MyConnectionImpl.class
    )
})
public class MyManagedConnectionFactory implements
    ManagedConnectionFactory, ResourceAdapterAssociation {

@Override
public Object createConnectionFactory(ConnectionManager connectionManager)
        throws ResourceException {
        //Return the connection factory.
    }
}

createConnectionFactory() は、ConnectionFactory1 または ConnectionFactory2 を返すかどうかをどのように判断しますか? とにかく誰かが ra.xml を介して注釈をオーバーライドしない限り、config-property を条件として使用する方法がわかりません。

ManagedConnectionFactory がどの接続定義の一部であるかを判断するのは難しいようですが、ConnectionFactory ごとに別の ManagedConnectionFactory を持つことができるのに、なぜこれを行うのでしょうか?

例は非常に役に立ちます。

4

0 に答える 0