4

我有以下场景:

USERS   1.1   ROLE   \*.\*   MODULE   \*.\*   INTERFACE

单个用户“JOHN”具有一个角色,并且该角色具有多个模块,并且单个模块具有多个接口。我在hibernate中使用了运行良好的注释。当我得到用户对象时,我得到了角色,通过使用角色对象,我得到了模块列表,在模块对象中,我得到了接口。

简单来说,当我获得用户时,我获得了包含用户的界面,但是我如何通过 HQL 和标准获得与用户不相关的界面。例如

我通过 SQL 获取接口数据 IN 和 NOT IN 但我想使用 HQL & Criteria 获取数据。

提前致谢。

4

1 回答 1

0

HQL 也支持 IN 和 NOT IN。在 HQL...

要找出与用户相关的所有接口,给定用户 ID:

select ui from USERS u join u.role.module.interface ui where u.id =:userId;

要找出与用户无关的所有接口,给定用户 ID:

select i from INTERFACE i where i NOT IN (select ui from USERS u join u.role.module.interface ui where u.id =:userId);
于 2012-12-18T14:51:11.447 回答