toString() в Grails Java Domain Class Причины

По умолчанию Grails возвращает <class name>:<id> для toString() объекта домена Java. Конечно, это совсем не то, что я хочу, поэтому я попытался @Override toString() вернуть то, что я хочу. Когда я попытался сгенерировать тег Grails для всех типов тегов, я получил следующую ошибку:

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

Мой код ниже. Любая помощь будет принята с благодарностью.

@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();
  }

}

person Brad Rhoads    schedule 22.06.2009    source источник
comment
Разве это не должно быть закрыто, как видно из комментариев ОП к ответу, что это произошло из-за других плагинов и среды.   -  person Peter N. Steinmetz    schedule 16.02.2013


Ответы (1)


Я переопределил toString() в доменных классах Grails без каких-либо проблем, так что это не может быть причиной. В этом блоге предполагается, что причиной может быть имя коллизии, либо временные (вы пробовали запустить "grails clean"?), либо, возможно, ваше имя класса Tagtype сталкивается с некоторыми внутренними компонентами grails.

Вы также можете попробовать использовать разные версии Grails, особенно последнюю версию 1.1.1, если вы ее еще не используете. Это сообщение ML описывает идентичное сообщение об ошибке, которое, по-видимому, было версией зависимый.

person Michael Borgwardt    schedule 22.06.2009
comment
Спасибо за ваш ответ. Просто чтобы убедиться, что мой вопрос понятен, я пытаюсь переопределить toString в классе JAVA, а НЕ в классе Grails. Я использую 1.1.1, и я сделал Grails чистым. - person Brad Rhoads; 23.06.2009
comment
Поскольку в классах Java происходит меньше волшебства, вероятность возникновения проблем должна быть еще меньше. Согласно статье, на которую я ссылаюсь, это может быть конфликт между JAR-файлами, требуемыми плагином Grails, и вашим собственным проектом. - person Michael Borgwardt; 23.06.2009
comment
На самом деле не имело смысла, что toString() должна была вызвать проблему. К сожалению, я совершил ошибку, поменяв сразу несколько вещей. Я также играл с парой плагинов (laszlo и zk). Я не уверен, какой из них вызвал проблему, но в любом случае это была проблема среды. Я создал новое приложение, обновился, и все было в порядке. И toString() работает как положено. Еще раз спасибо за то, что указали мне правильное направление. - person Brad Rhoads; 23.06.2009