【发布时间】:2017-06-06 08:50:07
【问题描述】:
我在 grails 中创建了一个域类,它按照代码中的说明映射到 vehicleList。现在我想获取家庭 id = 1 的车辆列表。我可以使用familyInstance.vehicleList 获取此信息。
但我想知道有没有其他方法可以得到这个。我尝试应用标准,但对于createCriteria 和withCriteria,在我提到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
}
}
数据库结构:
【问题讨论】:
标签: hibernate grails grails-orm