hibernate - 如何从grails的映射表中获取值?

标签 hibernate grails gorm

我在grails中创建了一个域类,该域类已按照代码中所述映射到vehicleList。现在,我想获取家庭ID = 1的车辆列表。我可以使用familyInstance.vehicleList来获取。

但是我想知道还有没有其他方法可以做到这一点。我尝试应用条件,但是createCriteriawithCriteria都向我显示了arrayIndexOutOfBound的投影中的错误property("vehicleList")错误。应用基本的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
    }
}

数据库结构:

enter image description here

Error with projections

最佳答案

删除您的createAlias语句

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

作品

关于hibernate - 如何从grails的映射表中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44385465/

相关文章:

grails:维护从服务到 Controller 的事务上下文

grails - Grails转发参数列表

hibernate - Grails排除了加载子属性或映射的可能性吗?

java - jpa 序列 ID 生成

mysql - dropwizard 和 hibernate 中的主从

java - 错误 4956 --- [nio-8080-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper : ORA-00923: FROM keyword not found where expected

java - 如何在不使用 @PersistenceContext 注释的情况下以编程方式获取特定的 EntityManager

testing - Grails - 测试 GORM 关系

grails - 更改表时Grails产生错误

grails - Grails float 编辑和精度