Select 使用条件查询

Select query using the condition

我有三个 tables here.The 用户可以应用培训 available.when he/she 选择培训然后将其放置在 TRAINUSER table根据 his/her 用户 ID。我想 SELECT 用户在 he/she 登录时显示来自 TRAINUSER table 的数据,其中 he/she 没有应用训练。 Like user_id 1 应用了 2 和 3 训练但没有应用 1 和 4 训练。我希望 user_id 1 使用休眠查询显示训练 1 和 4。

其中一些将取决于您的域 类 的外观,您可以像这样使用 executeQuery:

Training.executeQuery( "from Training tr where tr.id not in ( select t.id from TrainUser tu join tu.training t join tu.user u where u.username = :uname )", [uname: 'ADMIN'] )

假设有以下域,仅包含相关字段:

class User {
    String username
}

class TrainUser {
    static hasMany = [training: Training, user: User]
}

class Training {
    String name
}