0
以下对象:为什么HQL查询看起来不应该这样工作?
class UserEntity {
UUID id;
private List<TeamEntity> teams = new ArrayList<TeamEntity>();
private List<RuleEntity> rules = new ArrayList<RuleEntity>();
...
}
class RuleEntity {
UUID id;
private TeamEntity ownerTeam;
private List<UserEntity> users = new ArrayList<UserEntity>();
...
}
Class TeamEntity {
UUID id;
private List<UserEntity> users = new ArrayList<UserEntity>();
private List<RuleEntity> rules = new ArrayList<RuleEntity>();
}
如果我执行下面的HQL查询它完成,没有错误,并返回正确的结果:
select count(ruleEntity) from RuleEntity ruleEntity where :userId in elements(ruleEntity.users) and ruleEntity.ownerTeam.id = :teamId
不过,我不明白这一点是如何工作的:
where :userId in elements(ruleEntity.users)
对我来说这是检查是否用户ID(这是一个UUID)集合ruleEntity.users中存在,这是UserEntitys的名单,S o我会虽然这将失败,因为它在一个UUID对象的UserEntity对象列表中检查?