HQL加入Grails

时间:2013-06-28 18:33:47

标签: grails hql

我正在尝试执行查询以收集特定数据,但在查询的on部分遇到问题。首先,这是我的班级:

    class TimeSlot {

    String timeslot_id
    String time_chunk_id
    String uid
    String exam_id
    String start_time
    String is_special_arrangement

    static mapping = {
        table 'timeslot'
        id name: "timeslot_id", column: "timeslot_id"
        version false
        }
    }

这是我正在努力解决的问题:

TimeSlot.executeQuery("Select t.time_chunk_id, t.uid, t.start_time, t.timeslot_id, t.is_special_arrangement, e.length from TimeSlot t inner join Exams e on t.exam_id = e.exam_id where t.exam_id = ? and t.time_chunk_id = ?", [testArray[i], timeChunkArray[x]])

它在on部分引发错误,因为它期望一个子句,但我需要数据专门用于两个表的exam.id比较。是否有另一种方法可以设置查询,或者以不同的方式设置查询,以便它可以像在任何SQL编辑器中一样工作?

1 个答案:

答案 0 :(得分:0)

如果您更改域类并添加一对多关系

会更容易
class TimeSlot {
    static hasMany = [examinations:Exams]

然后HQL可以

select ... from TimeSlot t join t.examinations e