martes, 26 de junio de 2007

(Interceptores)Factorias de session que se recargan según eventos:

De esta forma no recargamos las llamadas a la base de datos:

@Stateful
@Scope(SESSION)
@Name("bookingList")
@Restrict("#{identity.loggedIn}")
@TransactionAttribute(REQUIRES_NEW)
public class BookingListAction implements BookingList, Serializable
{
.......

@Factory
@Observer("bookingConfirmed")
public void getBookings()
{
bookings = em.createQuery("select b from Booking b where b.user.username = :username order by b.checkinDate")
.setParameter("username", user.getUsername())
.getResultList();
}
........
}
@Stateful
@Name("hotelBooking")
@Restrict("#{identity.loggedIn}")
public class HotelBookingAction implements HotelBooking
{
...

@End
public void confirm()
{
em.persist(booking);
facesMessages.add("#{messages.gracias}, #{user.name}, your confimation number for #{hotel.name} is #{booking.id}");
log.info("New booking: #{booking.id} for #{user.username}");
events.raiseTransactionSuccessEvent("bookingConfirmed");
}
...
}

1 comentario:

Anónimo dijo...

Buenas!
Increible el encontrar un blog en español de seam framework.

Yo estoy aprendiendo, mas bien estoy leyendome todo el foro de seamframework.. Ademas estoy haciendo un trabajo para mi empresa, pero estoy muy atascado en algo basico.

No se si me podrás ayudar, pero te estaria inmensamente agradecido.

Mira, tengo una lista de autores en una datatable y en un icono para editar un autor tengo:

"adminAutorAction.selectAutor(aut)"

Pero de cara a la classe que tengo en java, no llega el objeto aut. Salta la excepcion de que me llega un null. Pero lo raro es que en las demas columnas del datatable aut.nombre me printa el nombre del autor.... estoy ya loco por encontrar la solución.

Si me puedes ayudar enviame un correo..
Muchas gracias!

Y felicidades con el blog.. y sobretodo que dediques a postear sobre seam.

bye