grails - 无法在Grails中使用类 '[Ljava.lang.Object;@589d360c'异常强制转换对象 '[Ljava.lang.Object;'

标签 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/show/2Class:org.codehaus.groovy.runtime.typehandling.GroovyCastExceptionMessage:Cannot cast object '[Ljava.lang.Object;@589d360c' with class '[Ljava.lang.Object;' to class 'learngrails.UserLogin' due to: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: learngrails.UserLogin(learngrails.UserLogin, learngrails.UserDetails)



环境-Grails 2.5.0和Jdk1.7

当我使用“find”及其与“findAll” 正常工作时,出现此错误。我是新来的grails,请帮忙-谢谢

最佳答案

您不能将find用于交叉连接。如果要获得单个结果,请使用带有额外参数的findAll:

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

关于grails - 无法在Grails中使用类 '[Ljava.lang.Object;@589d360c'异常强制转换对象 '[Ljava.lang.Object;',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38051990/

相关文章:

grails - Groovy Grails - 按键从 Map 中检索值的问题

grails - 仅向具有 USER_ROLE 权限的用户授予访问权限

excel - 如何在 Groovy 中生成 excel 或 pdf 格式的报告?

mysql - war 包装错误grails 2.3.4

grails - 如何在 Grails BuildConfig.groovy 中指定 JAR 依赖项?

grails - Groovy Slf4j 注释似乎会干扰 Grails 内置日志记录

multithreading - 糟透了。无法建立连接,池已耗尽

grails - Grails HTTBuilder请求错误

tomcat - Grails 3 - Tomcat 网址映射

grails - 如何使用grails 3.3.9在RestBuilder的post请求中发送 header