diff --git a/src/com/rjconsultores/ventaboletos/entidad/EsquemaAsiento.java b/src/com/rjconsultores/ventaboletos/entidad/EsquemaAsiento.java index 8d36bfee7..2e161290d 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/EsquemaAsiento.java +++ b/src/com/rjconsultores/ventaboletos/entidad/EsquemaAsiento.java @@ -6,7 +6,9 @@ package com.rjconsultores.ventaboletos.entidad; import java.io.Serializable; import java.util.Date; + import javax.persistence.Basic; +import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -52,7 +54,7 @@ public class EsquemaAsiento implements Serializable { @ManyToOne private Parada parada; @JoinColumn(name = "ESQUEMACORRIDA_ID", referencedColumnName = "ESQUEMACORRIDA_ID") - @ManyToOne + @ManyToOne(cascade = CascadeType.MERGE) private EsquemaCorrida esquemaCorrida; @Column(name = "MOTIVOBLOQUEO") private String motivobloqueo; diff --git a/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java b/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java index 8f12c316d..87d103bf3 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java +++ b/src/com/rjconsultores/ventaboletos/entidad/EsquemaCorrida.java @@ -89,24 +89,24 @@ public class EsquemaCorrida implements Serializable { @ManyToOne private Empresa empresa1; @JoinColumn(name = "CLASESERVICIO_ID", referencedColumnName = "CLASESERVICIO_ID") - @ManyToOne + @ManyToOne(cascade = CascadeType.ALL) private ClaseServicio claseServicio; @JoinColumn(name = "CLASESERVICIO2_ID", referencedColumnName = "CLASESERVICIO_ID") - @ManyToOne + @ManyToOne(cascade = CascadeType.ALL) private ClaseServicio claseServicio2; @OneToMany(cascade = CascadeType.ALL) @JoinColumn(name = "ESQUEMACORRIDA_ID", referencedColumnName = "ESQUEMACORRIDA_ID") private List esquemaTramoList; - @OneToMany + @OneToMany(cascade = CascadeType.ALL) @JoinColumn(name = "ESQUEMACORRIDA_ID", referencedColumnName = "ESQUEMACORRIDA_ID") private List esquemaAsientoList; @Column(name = "tipocorrida") private String tipocorrida; @JoinColumn(name = "ESQUEMAREBOTE_ID", referencedColumnName = "ESQUEMACORRIDA_ID") - @ManyToOne + @ManyToOne(cascade = CascadeType.ALL) private EsquemaCorrida esquemaCorridaRebote; @JoinColumn(name = "DIVISION_ID", referencedColumnName = "DIVISION_ID") - @ManyToOne + @ManyToOne(cascade = CascadeType.ALL) private Division division; @Column(name = "NUMCORRIDA") private Integer numCorrida; @@ -376,6 +376,12 @@ public class EsquemaCorrida implements Serializable { this.esquemaTramoList = esquemaTramoList; } + public void clearEsquemaAsiento(){ + while(!esquemaAsientoList.isEmpty()) { + esquemaAsientoList.remove(0); + } + } + public List getEsquemaAsientoList() { List esquemaList = new ArrayList(); for (EsquemaAsiento ec : this.esquemaAsientoList) { diff --git a/src/com/rjconsultores/ventaboletos/service/impl/EsquemaCorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/EsquemaCorridaServiceImpl.java index 64c73c3ef..a891b547f 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/EsquemaCorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/EsquemaCorridaServiceImpl.java @@ -4,6 +4,7 @@ */ package com.rjconsultores.ventaboletos.service.impl; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; @@ -60,11 +61,20 @@ public class EsquemaCorridaServiceImpl implements EsquemaCorridaService { @Transactional public EsquemaCorrida suscribir(EsquemaCorrida entidad) { + List asientos = new ArrayList(); + // org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing + asientos.addAll(entidad.getEsquemaAsientoList()); + entidad.clearEsquemaAsiento(); + entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setActivo(Boolean.TRUE); - return esquemaCorridaDAO.suscribir(entidad); + entidad = esquemaCorridaDAO.suscribir(entidad); + + entidad.setEsquemaAsientoList(asientos); + + return esquemaCorridaDAO.actualizacion(entidad); } @Transactional