【发布时间】:2013-12-17 19:39:47
【问题描述】:
我正在将我的 grails 应用程序从 grails 版本 1.3.7 升级到 2.2.2。除了这个之外,我使大部分代码都能正常工作。相同的代码在 grails 1.3.7 中工作,但在 grails 2.2.2 中停止工作并出现错误。请帮忙。这是导致问题的类。 域类 User、UserConfig 和服务类 UserService。
public class User implements Serializable {
String id
...
static hasMany = [userConfigs:UserConfig]
static mapping = {
version false
table 'c_user'
id column: 'id'
}
}
public class UserConfig implements Serializable
{
UserProfile profile
String genesysUserId
static belongsTo = [user: User]
static mapping = {
version false
table 'sp_user_config'
id composite:['user', 'profile']
user column: 'user_id'
profile column: 'profile_id', lazy: false
}
}
public class UserService {
boolean transactional = true
def getUserList(groupIdList) {
def userList = User.list()
userList.findAll() { user ->
user.userConfigs?.find() { userConfig ->
groupIdList.contains(userConfig?.profile?.group?.id)
}
}
}
}
我上课了; java.lang.IllegalArgumentException 消息:参数类型不匹配 在
行的 UserService.groovy 类中user.userConfigs?.find() { userConfig->
和线userList.findAll() { user->
如果我将“List userConfigs”添加到用户域类中
public class User implements Serializable {
String id
List<UserConfig> userConfigs
...
static hasMany = [userConfigs:UserConfig]
static mapping = {
version false
table 'c_user'
id column: 'id'
}
}
我得到了类:java.sql.SQLException 消息:ORA-00904:“USERCONFIG0_”。“USER_CONFIGS_IDX”:来自同一类 UserService 和同一行代码的无效标识符。
这是新版grails的issue还是hibernate issue?
【问题讨论】:
-
请发布完整的堆栈跟踪和服务代码。
-
你在服务方法中使用
@TypeChecked吗? -
我没有使用@TypeChecked注解。