Código Java:
Ver original
{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "suId") private int id; @Column(name = "suFecha") @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "dirId") private Direccion direccion; @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "subId") private Subastador subastador; //aqui empiezan mis problemas @OneToMany(mappedBy = "subasta",cascade = CascadeType.ALL) private List<Venta>ventas; .......................... public void addVenta(Venta v){ v.setSubasta(this); ventas.add(v); } public void delVenta(Venta v){ ventas.remove(v); } }
Código Java:
Ver original
package app.model.entity; import java.io.Serializable; import java.util.List; import javax.persistence.*; @Table(name = "ventas") { @EmbeddedId private VentaKey key; @JoinColumns({ @JoinColumn(name = "SuId",referencedColumnName = "suId"), }) @ManyToOne(cascade = CascadeType.ALL) private Subasta subasta; @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "estId") private Estado obje; @OneToMany(cascade = CascadeType.ALL, mappedBy = "venta") private List<Registro>registros; public Subasta getSubasta() { return subasta; } public void setSubasta(Subasta subasta) { this.subasta = subasta; } public VentaKey getKey() { return key; } public void setKey(VentaKey key) { this.key = key; } public Estado getObje() { return obje; } public void setObje(Estado obje) { this.obje = obje; } public List<Registro> getRegistros() { return registros; } public void setRegistros(List<Registro> registros) { this.registros = registros; } public Venta() { } public Venta(Subasta xobjs, Artefacto xobja, Estado obje) { this.key = new VentaKey(xobjs,xobja); this.obje = obje; } @Override if(obj instanceof Venta){ Venta v =(Venta)obj; return v.key.getObja() == this.key.getObja() && v.obje.equals(this.obje); } else { return false; } } @Override public int hashCode() { int hash = 17; hash = 31 * hash + this.key.getObja().hashCode(); hash = 31 * hash + this.obje.hashCode(); return hash; } @Override return this.key.getObja().getNombre() + " - estado: " + this.obje.getNombre(); } }
Pero en el formulario lo tengo así:
Código Java:
Ver original
if(this.dtfecsubasta.getCalendar() == null || this.txtdirsubasta.getText().isEmpty() || this.txtsubsubasta.getText().isEmpty()){ Mensajes.MostrarAdvertencia("Ingrese los datos obligatorios (*)"); } else { if(accion.equals("crear")){ try { Direccion d = FacadeContr.getInstance().manDirecciones().findByX(this.txtdirsubasta.getText()); Subastador s = FacadeContr.getInstance().manSubastadores().findByX(this.txtsubsubasta.getText()); Subasta sub = new Subasta(0, this.getDateTime(), d, s); sub.setVentas(((ModeloVenta)mv.getModelo()).getDatos().toList()); FacadeContr.getInstance().manSubastas().add(sub); Mensajes.MostrarConfirmacion("Subasta Creada"); btncancelarActionPerformed(evt); Mensajes.MostrarAdvertencia(ex.getMessage()); } } else { try { Direccion d = FacadeContr.getInstance().manDirecciones().findByX(this.txtdirsubasta.getText()); Subastador s = FacadeContr.getInstance().manSubastadores().findByX(this.txtsubsubasta.getText()); Subasta sub = new Subasta(Conversiones.CInt(this.txtnrosubasta.getText()), this.getDateTime(), d, s); sub.setVentas(((ModeloVenta)mv.getModelo()).getDatos().toList()); FacadeContr.getInstance().manSubastas().edit(sub); Mensajes.MostrarConfirmacion("Subasta Editada"); btncancelarActionPerformed(evt); Mensajes.MostrarAdvertencia(ex.getMessage()); } } } }
Pero no me guarda las ventas de la subasta y no se que rayos hacer...
Espero sus respuestas y saludos.