我在grails中创建了一个域类,该域类已按照代码中所述映射到vehicleList。现在,我想获取家庭ID = 1的车辆列表。我可以使用familyInstance.vehicleList
来获取。
但是我想知道还有没有其他方法可以做到这一点。我尝试应用条件,但是createCriteria
和withCriteria
都向我显示了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
}
}
数据库结构:
Error with projections
最佳答案
删除您的createAlias
语句
Family.createCriteria().list{
projections {
property('vehicleList')
}
eq('id', familyInstance.id)
}
作品
关于hibernate - 如何从grails的映射表中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44385465/