私は次のような問題を持っている - 全ドメイン環境のちょうどスニペットを考えると、私はそれを説明してみましょう:ソート:1関係
私はこれらの2つのドメインクラスを持っているし、取得したいです研究リストを作成し、現在の医師の名前で並べ替えます。私の問題は...私はGORMと基準のクエリを実行する方法を知っているドントこと、
class Study {
Date studydate
String comment
static belongsTo = [currentPatient:Patient, originalPatient: Patient, originalPhysician: Physician, currentPhysician: Physician]
static mapping = {
columns{
currentPatient column:'id_patient_current'
originalPatient column:'id_patient'
originalPhysician column:'id_physician'
currentPhysician column:'id_physician_current'
}
}
}
class Physician {
String personname
static hasMany = [currentStudies: Study, originalStudies: Study]
static mappedBy = [currentStudies: 'currentPhysician',
originalStudies: 'originalPhysician']
}
であり、現在のクエリ:
def physician = Physician.get(params?.phId)
def studies = Study.withCriteria{
and{
maxResults(limit as Integer)
firstResult(offset as Integer)
currentPhysician{
if(physician){
eq('id', physician.id)
}
order('personname', 'asc')
}
}
}
問題ではない、すべての研究がなければならないということです医師 - データベース内の列である "id_physician"と "id_physician_current"にNULL値が含まれている可能性があります(患者は医師から来ていません)。
直接SQL経由でのクエリは問題ありません:
select st.id, ph.personname from study as st left join Physician as ph on ph.ID = st.ID_Physician_Current order by ph.PersonName
私は次のクエリは、あなたが求めているものを実現すると信じてMSSQLデータベース
何らかの例外が発生していると思いますか? –
関連性がある可能性があります:http://stackoverflow.com/questions/5708735/how-do-i-sort-by-a-property-on-a-nullable-association-in-grails –