a) Implementar el entity bean PagoCabecera
/* PagoCabecera.java */
package entities;
@Entity
@Table(name = "pagos_cabecera")
public class PagoCabecera implements Serializable {
@Id
@Basic(optional = false)
@Column(name = "id_pago_cabecera")
private Integer idPagoCabecera;
@Column(name = "nro_cuenta")
private String nroCuenta;
@Column(name = "fecha")
@Temporal(TemporalType.DATE)
private Date fecha;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idPagoCabecera")
private Collection<PagoDetalle> pagoDetalleCollection;
/*Aquí irían los Setters y Getters.*/
}
b) Implementar el entity bean PagoDetalle
/* PagoDetalle.java */
package entities;
@Entity
@Table(name = "pagos_detalle")
public class PagoDetalle implements Serializable {
@Id
@Basic(optional = false)
@Column(name = "id_pago_detalle")
private Integer idPagoDetalle;
@Column(name = "monto")
private Float monto;
@Column(name = "arancel")
private Integer arancel;
@Column(name = "procentaje_impuesto")
private Integer procentajeImpuesto;
@JoinColumn(name = "id_pago_cabecera", referencedColumnName = "id_pago_cabecera")
@ManyToOne(optional = false)
private PagoCabecera idPagoCabecera;
/*Aquí irían los Setters y Getters.*/
}
c) Implementar el entity bean RegistroPago
/* RegistroPago.java */
package entities;
@Entity
@Table(name = "registro_pagos")
public class RegistroPago implements Serializable {
@Id
@Basic(optional = false)
@Column(name = "id_registro_pago")
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private Integer idRegistroPago;
@Column(name = "nro_cuenta")
private String nroCuenta;
@Column(name = "fecha")
@Temporal(TemporalType.DATE)
private Date fecha;
@Column(name = "user_id")
private String userId;
@Column(name = "estado")
private Integer estado;
@Column(name = "mensaje")
private String mensaje;
@Column(name = "id_pago_cabecera")
private Integer idPagoCabecera;
/*Aquí irían los Setters y Getters.*/
}
d) Implementar el Session Bean PagosEAO
/* PagosEAO.java */
package beans;
@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
public class PagosEAO {
@Resource
private SessionContext context;
...
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void guardarPago(PagoCabecera pagoCabecera) throws ServiceException {
try {
/* Lo que va aca es lo que nos esta faltando.*/
} catch (Exception e) {
throw new ServiceException(e);
}
}
}
/* ServiceException.java */
@ApplicationException(rollback=true)
public class ServiceException extends Exception {
public ServiceException(Exception cause) {
super(cause);
}
}
d) Implementar el Session Bean PagosEAO
/* PagosEAO.java */
package beans;
@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
public class PagosEAO {
@PersistentContext
private EntityManager em;
@Resource
private SessionContext context;
...
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void guardarPago(PagoCabecera pagoCabecera) throws ServiceException {
try {
this. em.persist(pagoCabecera);
Iterator<PagoDetalle> it=pagoCabecera.getPagoDetalles().iterator();
while (it.hasNext()) {
PagoDetalle pd=it.next();
this.em.persist(pd);
}
} catch (Exception e) {
context.setRollbackOnly();
throw new ServiceException(e);
}
}
}
esta linea que agregaste a la excepcion es para el item f) nada mas cierto?
@ApplicationException(rollback=true)
--
Has recibido este mensaje porque estás suscrito al grupo "pw-fpuna-2009" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a pw-fpu...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a pw-fpuna-200...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/pw-fpuna-2009?hl=es.