我这里有三个表。用户可以应用可用的培训。当他/她选择培训时,它将根据他/她的用户ID放置在trainuser表中。我想在用户登录时选择该用户,并显示他/她尚未应用培训的trainuser表中的数据。与用户一样,用户id 1已应用2和3培训,但未应用1和4培训。我想用hibernate查询显示用户\u id 1和training 1和4。
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
}
1条答案
按热度按时间euoag5mw1#
其中一些取决于您的域类的外观,您可以这样使用executequery:
假设有以下域,则只包括相关字段: