viernes, 30 de julio de 2010

Seam: Eliminar el mensaje "Transaction Failed"

Si queremos eliminar el mensaje "Transaction Failed" que aparece cada vez que falla una transacción y que Seam automáticamente pone en el "FacesMessages" se puede hacer de dos formas:

1. Añadiendo al fichero seam.properties la siguiente línea:

org.jboss.seam.transaction.facesTransactionEvents.transactionFailedMessageEnabled=false

2. Añadiendo al fichero components.xml la siguiente configuración:

<component name="org.jboss.seam.transaction.facesTransactionEvents">
<property name="transactionFailedMessageEnabled">false</property>
</component&gt
;

sábado, 17 de julio de 2010

Contexto de persistencia extendido

Cuando inyectamos un contexto de persistencia extendido con @PersistenceContext(type = EXTENDED) en primera instancia estamos indicando que el ciclo de vida del contexto de persistencia y del EntityManager están ligados al ciclo de vida del bean en el que lo injectamos y no de la transacción activa en el momento de la llamada a un método de negocio. Esto afecta a las operaciones sobre entidades de la siguiente manera:

En un contexto de persistencia EXTENDIDA, todas las operaciones de sólo lectura del EntityManager pueden ejecutarse al margen de una transacción (find (), getReference (), refresh (), y consultas de lectura). Algunas operaciones de modificaciones pueden ejecutarse al margen de una transacción, pero se ponen en cola hasta que el contexto persistencia se une a una transacción: este es el caso de persist (), merge (), remove (). Algunas operaciones no pueden ser llamadas fuera de una transacción: flush (), lock (), y consultas de eliminación de tipo update/delete.