【问题标题】:How to get values from mapping table in grails?如何从grails中的映射表中获取值?
【发布时间】:2017-06-06 08:50:07
【问题描述】:

我在 grails 中创建了一个域类,它按照代码中的说明映射到 vehicleList。现在我想获取家庭 id = 1 的车辆列表。我可以使用familyInstance.vehicleList 获取此信息。

但我想知道有没有其他方法可以得到这个。我尝试应用标准,但对于createCriteriawithCriteria,在我提到property("vehicleList") 的预测中显示错误arrayIndexOutOfBound 错误。应用基本的 MySql 查询,我可以直接从映射表中获取数据,但如果我想使用标准获取这些数据,该怎么做。

class Family {

    String name

    Integer noOfVehicle

    List vehicleList

    static hasMany = [vehicleList: String]

    static constraints = {
    }
}



class FamilyController {

 def edit(Family familyInstance) {

        def fi = familyInstance
        println "familyInstance ::: " + familyInstance

        //Try 1
        def familyCriteria = Family.createCriteria()
        def vehicleList = familyCriteria.list{
            createAlias('vehicleList','vlist')
            projections {
                property('vehicleList')
            }
            eq('id',familyInstance.id)
        }
        println "vehicleList ::: " + vehicleList

        //Try 2
        def vehicleList1 = familyInstance.vehicleList
        println "vehicleList1 ::: " + vehicleList1

        //Try 3
        def vehicleList2 = Family.withCriteria{
            createAlias('vehicleList','vlist')
            projections{
                property('vehicleList')
            }
            eq('id',familyInstance.id)
        }
        println "vehicleList2 ::: ===------>>>>>" + vehicleList2
        respond familyInstance
    }
}

数据库结构:

Error with projections

【问题讨论】:

    标签: hibernate grails grails-orm


    【解决方案1】:

    删除您的 createAlias 声明

    Family.createCriteria().list{
        projections {
            property('vehicleList')
        }
        eq('id', familyInstance.id)
    }
    

    作品

    【讨论】:

    • 如果我删除它。它仍然向我显示错误。 URI /SampleGrailsProject/family/edit/1 类 java.lang.ArrayIndexOutOfBoundsException 消息 0
    • 然后发生了其他事情。我在示例项目中测试了确切的代码
    • 如果我评论 property('vehicleList') 那么我不会显示错误。但它不适用于预测中的财产。我添加了有问题的错误截图。
    猜你喜欢
    • 2022-11-26
    • 1970-01-01
    • 2013-12-05
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多