Как я могу добавить список целых чисел в классе домена Grails

Я создал класс домена, как указано ниже, который содержит int и список целочисленных свойств.

class User {

    int UserId
    List<Integer> UserFriendsId 

    static constraints = {
    }

    User() {
        this.UserId = 21
        this.UserFriendsId=[1,2,3]
    }
}

Таблица, сгенерированная для этого класса домена при сохранении, выглядит следующим образом

    mysql> select * from user;
+----+---------+---------------------+
| id | version | UserId              |
+----+---------+---------------------+
|  1 |       0 |                  21 |
|  2 |       0 |                  21 |
|  3 |       0 |                  21 |
+----+---------+---------------------+
3 rows in set (0.00 sec)

колонка для userFriendsId (то есть: для списка целых чисел) не генерируется в этой таблице user,

Итак, как можно решить эту проблему или добавить список целых чисел в классе домена Grails.

2 ответа

Список UserFriendsId должен отображаться как базовый тип коллекции GORM, а не просто быть списком в классе домена пользователя:

class User {

    int userId

    static hasMany = [userFriendsIds: Integer]

    static mapping = {
        userFriendsIds joinTable: [name: "user_id", column: "friend_id", type: Integer]
    }

    static constraints = {
    }

    User() {
    }
}

Почему бы просто не сделать UserFriendsId разделенной запятыми строкой?

class User {

    int UserId
    String UserFriendsId 

    static constraints = {
    }

    User() {
        this.UserId = 21
        this.UserFriendsId = "1,2,3"
    }
}

Затем:

for (userId in UserFriendsId.get(21).split(','))
{
    println userId.toInteger()
    /// Or do whatever ...
}
Другие вопросы по тегам