私はこのように設定した基準を持っている: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。私が理解しているところでは、最初のリストは選択されたアイテムのリストであり、2番目のリストはアイテムの列のリストです。私の質問は
どのようにすべての選択項目を取得できますか?例:
def list = equipmentInstanceList.[all] //supposed to get all the selected items
def a = equipmentInstanceList[1] //will only get the 1st item in 1st list
第2リストの特定の列にアクセスするにはどうすればよいですか?例:
def a = equipmentInstanceList[1].status //supposed to get the status column in 2nd list
EDIT:
このクエリは、上記の基準と同じ結果を持っています。
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
申し訳ありませんが私の無意味な質問を形成します。あなたの助けが大いにありがたいです。質問の 'new map'メソッドが私の問題を解決しました。 – newbie
2番目のコメントはあなたがそれを理解していることを意味します。 – Vahid