2009-06-22 8 views
2

Par défaut, grails semble renvoyer <class name>:<id> pour toString() d'un objet de domaine Java. Ce n'est pas du tout ce que je veux bien sûr, alors j'ai essayé de @Override le toString() pour retourner ce que je veux. Lorsque j'ai essayé grails générer-tout Tagtype, j'ai l'erreur suivante:toString() dans Grails Classe de domaine Java Causes

java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a differen 
t type with name "org/w3c/dom/NamedNodeMap" 

Mon code est ci-dessous. Toute aide serait grandement appréciée.

@Entity 
@Table(name = "tagtype", catalog = "tigger") 
@SuppressWarnings("serial") 
public class Tagtype implements Serializable { 

    /** 
    * Attribute id. 
    */ 
    private Integer id; 

    /** 
    * Attribute tagtype. 
    */ 
    private String tagtype; 

    /** 
    * Attribute regexpression 
    */ 
    private Regexpression regexpression; 

. . . 

    @Override public String toString() { 
    StringBuilder result = new StringBuilder(); 

    result.append(this.tagtype); 

    return result.toString(); 
    } 

} 
+0

Version Grails? –

+0

Ne devrait-il pas être fermé puisqu'il apparaît, d'après les commentaires de l'OP sur la réponse, qu'il était dû à d'autres plugins et à l'environnement. –

Répondre

1

J'ai outrepassée toString() dans les classes de domaine Grails sans aucun problème, de sorte que ne peut pas être la raison. This blog suggère qu'il pourrait être le résultat de collisions de noms, soit temporaire (avez-vous essayé d'exécuter "grails clean"?) Ou peut-être votre nom de classe Tagtype se heurte à certains internes de grails.

Une autre chose que vous pouvez essayer est d'utiliser différentes versions de Grails, en particulier la dernière 1.1.1 si vous ne l'utilisez pas déjà. This ML post décrit un message d'erreur identique apparemment dépendant de la version.

+0

Merci pour votre réponse. Juste pour m'assurer que ma question est claire, j'essaye de surcharger toString dans une classe JAVA, PAS une classe de Grails. J'utilise 1.1.1 et j'ai fait des grails propres. –

+0

Comme il y a moins de "magie" dans les classes Java, il devrait y avoir encore moins de problèmes potentiels. Selon l'article auquel je suis lié, il pourrait s'agir d'une collision entre les fichiers JAR requis par un plugin grails et votre propre projet. –

+0

Cela n'a vraiment pas de sens que toString() ait causé un problème. Malheureusement, j'ai fait l'erreur de changer plus d'une chose à la fois. Je jouais aussi avec quelques plugins (laszlo & zk). Je ne suis pas sûr de savoir qui causait le problème, mais en tout cas, c'était un problème d'environnement. J'ai créé une nouvelle application, regened et tout allait bien. Et toString() fonctionne comme prévu. Merci encore de m'avoir indiqué dans la bonne direction. –

Questions connexes