Добавление элемента массива в строительные леса Grails

У меня есть доменный класс с коллекцией простых строк в качестве одного из его членов

class Customer {
    String name;

    static hasMany = [ aliases:String ]

    static constraints = {
        name blank:false
    }
}

Мне интересно, могу ли я добавить псевдонимы к каркасу grails? и если да, то как?

Спасибо,


person Angelo Genovese    schedule 25.07.2011    source источник


Ответы (1)


Grails не создает строительные леса для массивов. HasMany разработан для использования с другим классом предметной области, а не с переменной. Использование hasMany с доменным классом приведет к автоматическому формированию строительных лесов. Например

class Customer {
    String name;
    static hasMany = [ aliases:Alias ]
    static constraints = {
        name blank:false
    }
}
class Alias {
    String alias;
    static constraints = {
        alias blank:false
    }
}

Это создаст две таблицы: customer и alias. Внешний ключ будет использоваться для связывания записей в таблице псевдонимов с клиентом. Коллекция псевдонимов будет доступна для

alias[0].alias

Если вам нужно использовать массив вместо другого класса домена, вам придется написать собственный код для пользовательского интерфейса.

person Jared    schedule 25.07.2011
comment
Это более или менее то, что я подозревал, хотя hasMany предназначен для использования с другим классом домена, а не переменная немного сильна, она поддерживает коллекции таким образом и создает дополнительную таблицу, которая просто не создает связанных каркасов . Предполагая, что на следующий день никто не придет с ответом, который доказывает, что мы оба ошибаемся, я приму этот ответ. - person Angelo Genovese; 25.07.2011