Herencia JPA y polimorfismo EJB

Tengo una aplicación web Java EE 6 que utiliza transacciones administradas por contenedor y contexto de persistencia propagado por contenedor a través de

@PersistenceContext
private EntityManager em;

En la capa JPA tengo una estrategia de herencia, dondeMyExtendedClassA yMyEntendedClassB ambos se extiendenabstract MyClass.

yo suelostateless facade Clases de servicio para la implementación del acceso a datos a través de los métodos.find, findAll, merge, persist, remove:

@Stateless
public class MyExtendedClassAFacade {
    @PersistenceContext
    private EntityManager em;
    public void persist(MyExtendedClassA a) {
        // ...
    }
    // other methods
}

Hasta ahora tan bueno. Ahora tengo que implementar un polimorfismo en elcomportamiento de las clases ampliadas. Este comportamiento consiste en administrar algunas otras entidades en la base de datos, por lo que necesita el PersistenceContext (y por lo tanto necesito usar otrosStateless EJBs):

@Stateful
public class MyBean {

    @EJB
    private MyClassFacade myClassFacade;   // stateless facade service class

    public void doSomething() {
        for (MyClass c : myClassFacade.findAll()) {
            // here I need to perform operations on the db. 
            // The implementation differs on each extended class.
            // I want to avoid a brute-force coding like:
            if (c.getClass().equals(MyExtendedClassA.class)) {
                @EJB MyExtendedClassAFacade myClassFacadeA;
                myClassFacadeA.doSomething((MyExtendedClassA) c);
            } else if (c.getClass().equals(MyExtendedClassB.class))
                @EJB MyExtendedClassBFacade myClassFacadeB;
                myClassFacadeB.doSomething((MyExtendedClassB) c);
            }
            // Instead, I would like to write something like:
            @EJB AnotherStatelessBean asb;
            asb.doSomething(c);
        }
    }
}

¿Hay algún patrón de abstracción que pueda usar para este objetivo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta