SCBCD: Apuntes tácticos 3

(Imagen: Paul Gauguin - Retrato de Madame Gauguin)


  • Los MDB's no deben invocar a los métodos isCallerInRole(), getEJBObject(), getEJBLocalObject()
  • Las clases correspondientes a Session Beans deben ser públicas, no finales y no abstractas. Deben poseer un constructor público sin parámetros y no tener el método finalize implementado.
  • Si el session bean sólo implementa una interfaz, dicha interfaz será considerada como interfaz de negocio local.
  • Los timers pueden ser creados desde session beans stateless, MDB's y entity beans 2.1
  • Se puede obtener TimerService por inyección de dependencia (DI) o mediante context.getTimerService
  • TimerService nos provee de los métodos createTimer y getTimers
  • Se puede implementar un método timeour callback con la anotación @Timeout (void method(Timer)) o implementando la interfaz javax.ejb.TimedObject junto a su método public void ejbTimeout (Timer)
  • Al invocar una operación en un Timer expirado, se obtiene NoSuchObjectLocalException
  • Un método timeout puede tener cualquier visibilidad pero no puede ser static ni final
  • Una clase entidad debe estar anotada con @Entity o declarada en el descriptor XML
  • Debe tener un constructor sin parámetros public o protected
  • No debe ser final , y ninguno de sus métodos debe ser final.
  • El estado de las variables debe ser private, protected o package (no public!!!)
  • Se usa la anotación @ExcludeDefaultListeners para excluir los listeners por defecto (duh!)
  • Se usa la anotación @ExcludeSuperclassListeners para evitar la invocación de listener de la clase padre en la misma clase y sus subclases.
  • Una entidad puede sobreescribir los listeners definidos por su clase padre
  • Los métodos listener en la clase Listener tienen la firma void method (Object) y los métodos listener en la misma clase o en la clase padre tienen la firma : void method
  • Orden de invocación de Listeners:
  • Listeners por defecto para la persistence unit
  • Entity Listener del padre
  • Entity Listener de la entidad
  • Listeners definidos en el padre
  • Listeners definidos en la entidad
  • PersistenceContextType puede ser TRANSACTIOPNo EXTENDED. TransactionType puede ser JTA (por defecto para aplicaciones J2EE) o RESOURCE_LOCAL (por defecto en J2SE )
  • Las excepciones NoResultException y NoUniqueResultException no causan rollback en la transacción
  • Las funciones agregadas de JPQL son : AVG, COUNT, MIN, MAX, SUM
  • COUNT devuelve un long
  • MIN/MAX devuelve el tipo al que son aplicadas
  • AVG devuelve double
  • SUM retorna Long, Double, BigInteger o BigDecimal
  • De no encontrar valores COUNT devuelve cero. El resto devuelve NULL


Basado en las notas de Raghavendra Balgi

Publicar un comentario