J'ai un projet grails avec une classe que je ne peux supprimer aucun problème en le faisant "manuellement" depuis le contrôleur. J'utilise le code suivant.supprimer tous les articles de set tried in grails
def delete = {
def projectInstance = Project.get(params.id)
def employee = projectInstance.employee
def projectarray = new ArrayList<Project>();
projectarray += employee.getProjects()
println("Size of projectarray is " + projectarray.size())
if(projectInstance) {
def rolearray = []
projectarray.remove(projectInstance)
def temp = new TreeSet<Project>();
temp += employee.getProjects()
temp.clear()
temp.addAll(projectarray)
employee.projects = temp
projectInstance.employer = null
projectInstance.delete(flush:true)
flash.message = "Project ${params.id} deleted"
redirect(action:"edit", controller: "employee", id: employee.id)
}
else {
flash.message = "Project not found with id ${params.id}"
redirect(action:list)
}
}
Ainsi, cela supprime une instance unique.
Maintenant, je veux, à partir d'un contrôleur différent, supprimer tous les projets d'un employé.
Il est stocké dans l'employé comme ceci:
class Employee implements Comparable
{
static hasMany = [projects:Project]
static constraints =
{
}
static mapping = {
projects cascade:"all-delete-orphan", lazy:false
}
@XmlElementWrapper(name="projectslist")
SortedSet<Project> projects = new TreeSet<Project>(); // make a sortedSet?
}
Alors, comment pourrais-je maintenant supprimer tous les projets d'une instance d'un collaborateur?
Je pense peut-être que j'ai besoin d'un exemple plus élaboré. Je vais voir si je peux travailler quelque chose demain et l'afficher. – Derek
Il s'est avéré que c'était correct - ce qui est plus ou moins ce que j'avais. Le problème était avec quelques cascades mal installées. – Derek