Как я могу добавить список целых чисел в классе домена 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 ...
}