我正在使用Grails 2.2.1和Mongo gorm。
我有一些域具有其他域对象的嵌入式集合的关系,例如:
class User {
String firstName
String lastName
List<UserProfile> userProfiles
static embedded = [
'userProfiles'
]
...
每当我坚持这样的对象时,我会在日志中收到一条消息:
ERROR binding.GrailsDataBinder - 无法自动创建类型接口java.util.List,在构造函数中抛出类java.lang.InstantiationException
即使我收到此消息,它仍然有效,并且按预期嵌入了这些UserProfile对象的List。我看到某处grails尝试为某些原因实例化嵌入对象的接口。
我见过人们这样做:
List<UserProfile> userProfiles = []
但是你显然失去了使用可以为空的约束的能力。我肯定会宣布:
ArrayList<UserProfile> userProfiles
可能会奏效,但我不会那样做。有没有办法将这样的关系声明为嵌入而不会出现此错误?