我目前遇到grails问题。我有一个包含List的类(Item)(hasMany = [users:User]),然后User是一个包含3个子类的类(SubUser1,SubUser2)。
问题是当我触摸包含用户列表的集合时,那里包含的对象都是User类型(而不是子类,它应该是正确的)。
这个问题无法知道,集合中的用户是哪种类型。
你以前遇到过这个问题吗?你知道怎么解决这个问题吗?
谢谢, 尼古拉斯
以下是相关的代码:
/*** Domain Class ***/
class Item {
List<User> users = []
static hasMany = [users : User]
}
class User {
String username
}
class User1 {
//Some other properties
}
/*** On the view ***/
item.users
--> Returns a list of User_$javassist$ and
not of type User1 as it should be
答案 0 :(得分:0)
我有一个在grails中使用这样的多态的项目。我没有这个问题。我有一个名为Media
的超类,以及像Book
和Movie
如果我这样做Media.all.each { it instanceof Movie ? println 'is movie' : 'is not movie' }
会给我预期的输出,其中一些是电影,一些不是电影。
修改强>
尝试使用此结构
class Item {
static hasMany = [users : User]
static mapping = {
tablePerHierarchy false
}
}
class User {
String username
}
class User1 extends User {
//Some other properties
}