当我尝试执行具有多个表的查询时,我在grails应用程序中得到强制转换异常 UserLogin userList = UserLogin.find(“来自UserLogin为ul,UserDetails为ud,其中ul.id = ud.id”)
UserLogin.groovy
class UserLogin {
String id
String userName
String pwd
static constraints = {
}
static mapping = {
table '[UserLogin]'
version false
id column : 'Id', generator: "assigned"
userName column: 'UserName'
pwd column:'Password'
}
}
UserDetails.groovy
class UserDetails {
int id
String name
String age
static mapping={
table '[UserDetails]'
version false
id column : 'Id', generator: "assigned"
name column:'Name'
age column:'Age'
}
static constraints = {
}
}
完整堆栈跟踪
URI:/ LearnGrails / USERLOGIN /显示/ 2Class:org.codehaus.groovy.runtime.typehandling.GroovyCastExceptionMessage:不能 使用类转换对象'[Ljava.lang.Object; @ 589d360c' '[Ljava.lang.Object;'由于以下原因导致'learngrails.UserLogin'课程: groovy.lang.GroovyRuntimeException:找不到匹配项 构造函数:learngrails.UserLogin(learngrails.UserLogin, learngrails.UserDetails)
环境 - Grails 2.5.0和Jdk1.7
当我使用“find”并使用“findAll”时,我收到此错误。我是grails的新手请帮忙 - 谢谢
答案 0 :(得分:0)
您无法使用find进行交叉连接。如果你想得到单个结果,请使用带有额外参数的findAll:
def userList= UserLogin.findAll("from UserLogin as ul, UserDetails as ud where ul.id=ud.id", [max:1])