无法使用类'[Ljava.lang.Object;''转换对象'[Ljava.lang.Object; @ 589d360c'' grails中的例外情况

时间:2016-06-27 10:47:09

标签: grails

当我尝试执行具有多个表的查询时,我在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的新手请帮忙 - 谢谢

1 个答案:

答案 0 :(得分:0)

您无法使用find进行交叉连接。如果你想得到单个结果,请使用带有额外参数的findAll:

def userList= UserLogin.findAll("from UserLogin as ul, UserDetails as ud where ul.id=ud.id", [max:1])