2016-09-05 2 views
0

Jungs! Wie kann ich Artikel aus Eltern -> Kinderliste entfernen? Hier ist meine Situation.Hibernate Element aus der Liste entfernen.

-Controller

@RequestMapping(value = "/delete/{distributorId}/{exhibitorId}", method = RequestMethod.GET) 
    public String deleteExhibitor(Model model, @PathVariable("distributorId") Integer distributorId, 
     @PathVariable("exhibitorId") Integer exhibitorId) { 

    Distributor distributor = distributorService.getById(distributorId); 

    distributor.getExhibitor().remove(exhibitorId); 

    distributorService.update(distributor); 

    return "redirect:/"; 
} 

und Distributor (Parent)

@Entity 
@Table(name = "distributor") 
public class Distributor { 

@Id 
@GeneratedValue(strategy= GenerationType.IDENTITY) 
@Column(name = "id") 
private Integer id; 

@Column(name = "name") 
private String name; 

@Column(name = "city") 
private String city; 

@Column(name = "address") 
private String address; 

@LazyCollection(LazyCollectionOption.FALSE) 
@OrderColumn(name="orders_index") 
@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true) 
List<Exhibitor> exhibitor = new ArrayList<Exhibitor>(); 

@LazyCollection(LazyCollectionOption.FALSE) 
@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true) 
List<Merchandiser> merchandiser = new ArrayList<Merchandiser>(); 
Getters and setters.. 

ich den Händler-ID aus der URL bekommen, und am nächsten getByID verwenden, um das richtige Distributor Objekt bekommen, die enthält der Aussteller, den ich löschen möchte.

Antwort

0

List Remove-Methode funktioniert auf Equals-Methode Implementierung der Objekt. Mach etwas wie das.

Iterator x = distributor.getExhibitor().iterator(); 
while(x.hasNext()){ 
    Exhibitor ex = x.next(); 
    if(ex.getExhibitorId()!=null && ex.getExhibitorId().equals(exhibitorId)){ 
     x.remove(); 
     break; 
    } 
} 
+0

Vielen Dank! Funktioniert alles :) –

Verwandte Themen