Ver Mensaje Individual
  #19 (permalink)  
Antiguo 19/07/2017, 19:30
Avatar de detective_jd
detective_jd
 
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: Guardar OneToMany Hibernate

Hola a todos, resulta que todavía no resolví mi problema, no me sale el error que mencioné anteriormente, pero no me borra la venta de la subasta, así tengo el código:

Código Java:
Ver original
  1. package app.model.entity;
  2. import app.contr.util.Conversiones;
  3. import java.io.Serializable;
  4. import java.util.*;
  5. import javax.persistence.*;
  6. import up.max.proyectpages.structs.PagesList;
  7. @Table(name = "subastas")
  8. @NamedQueries({
  9.     @NamedQuery(name = "subasta.findAll",query = "select s from Subasta s"),
  10.     @NamedQuery(name = "subasta.maxId",query = "select max(s.id)+1 from Subasta s"),
  11.     @NamedQuery(name = "subasta.search",query="select s from Subasta s "
  12.             + "where s.direccion.nombre like :criterio or s.subastador.ape1 like :criterio")
  13. })
  14. public class Subasta implements Serializable
  15. {
  16.    ........
  17.    @OneToMany(mappedBy = "key.subasta",cascade = {CascadeType.PERSIST, CascadeType.REMOVE}, fetch = FetchType.LAZY,orphanRemoval=true)
  18.     private List<Venta>ventas = new ArrayList();
  19.    ........
  20.    public void addVenta(Venta v) throws Exception{
  21.         if(ventas.contains(v)){
  22.             throw new Exception("La venta ya fue registrada");
  23.         } else {
  24.             ventas.add(v);
  25.         }
  26.     }
  27.     public void delVenta(Venta v){
  28.         v.getKey().setObjs(null);
  29.         ventas.remove(v);
  30.     }

el delVenta no me funciona.

Código Java:
Ver original
  1. package app.model.entity;
  2. import java.io.Serializable;
  3. import java.util.List;
  4. import javax.persistence.*;
  5. @Table(name = "ventas")
  6. public class Venta implements Serializable
  7. {
  8.     @EmbeddedId
  9.     private VentaKey key;
  10.     @ManyToOne(cascade = CascadeType.ALL)
  11.     @JoinColumn(name = "estId")
  12.     private Estado obje;
  13.     @OneToMany(cascade = CascadeType.ALL, mappedBy = "venta")    
  14.     private List<Registro>registros;
  15.     .........
  16. }

Me borra en el jtable pero no me borra en la base de datos.

Código Java:
Ver original
  1. package app.model.entity;
  2. import java.io.Serializable;
  3. import javax.persistence.*;
  4. @Embeddable
  5. public class VentaKey implements Serializable
  6. {
  7.     @ManyToOne(cascade = CascadeType.ALL)
  8.     @JoinColumn(name = "suId")
  9.     private Subasta subasta;
  10.     @ManyToOne(cascade = CascadeType.ALL)
  11.     @JoinColumn(name = "artId")
  12.     private Artefacto obja;
  13.     .........
  14. }

No sé que solución me dan pero quiero terminar con este onetomany.

Espero sus respuestas y Saludos.