我创建了一个域类,如下所示,其中包含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域类中添加整数列表。
答案 0 :(得分:1)
UserFriendsId列表应该映射为GORM basic collection type,而不仅仅是User域类中的列表:
class User {
int userId
static hasMany = [userFriendsIds: Integer]
static mapping = {
userFriendsIds joinTable: [name: "user_id", column: "friend_id", type: Integer]
}
static constraints = {
}
User() {
}
}
答案 1 :(得分:-2)
为什么不将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 ...
}