0
我已经建立了这样的条件:Grails的 - 获得查询柱接合表
def e = Equipment.createCriteria()
def equipmentInstanceList = e.list {
createAlias "rentals", "r", org.hibernate.sql.JoinType.LEFT_OUTER_JOIN
projections {
property('name')
property('r.status')
property('r.dateRented')
property('r.dateReturned')
}
}
我的想法,它会返回2维列表。如提到here。据我所知,第一个列表是所选项目的列表,第二个列表是项目列表的列表。我的问题是
如何获得所有选定的项目?示例:
def list = equipmentInstanceList.[all] //supposed to get all the selected items
def a = equipmentInstanceList[1] //will only get the 1st item in 1st list
如何访问第二个列表中的特定列?例如:
def a = equipmentInstanceList[1].status //supposed to get the status column in 2nd list
编辑:
该查询有相同的结果与上述的标准。
def equipmentForRent = Equipment.executeQuery("SELECT e.name, r.status, r.dateRented, r.dateReturned FROM ers.Equipment e LEFT JOIN e.rentals r")
我仍然试图获取equipmentForRent
中的列。我到目前为止所尝试的。
each.equipmentForRent { e -> println e.dateReturned }
仍然得到这个错误:
Exception evaluating property 'dateRented' for java.util.Arrays$ArrayList, Reason: groovy.lang.MissingPropertyException: No such property: dateRented for class: java.lang.String
为什么从该查询不同:
def rentalTest = Rental.executeQuery("FROM Rental")
println rentalTest.status //no error, returns the status column from rental
有人吗?
您建议的解决方案中的地图的关键将作为真正的专栏吗? – newbie
对不起我的无意义的问题。您的帮助非常感谢查询中的“新地图”方法解决了我的问题 – newbie
没有问题我推测您的第二条评论意味着您了解它。 – Vahid