4

次のシナリオがあります。

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

1 人のユーザー「JOHN」には 1 つのロールがあり、そのロールには複数のモジュールがあり、1 つのモジュールには複数のインターフェイスがあります。うまく機能する休止状態のアノテーションを使用しました。ユーザーオブジェクトを取得すると、役割を取得し、役割オブジェクトを使用してモジュールのリストを取得し、モジュールオブジェクトでインターフェイスを取得します。

簡単に言えば、ユーザーを取得すると、ユーザーを含むインターフェイスを取得できますが、HQL と基準を介してユーザーに関係のないインターフェイスを取得するにはどうすればよいですか。例えば

インターフェイス データ IN と NOT IN を SQL でフェッチしますが、HQL & Criteria を使用してデータを取得したいと考えています。

前もって感謝します。

4

1 に答える 1

0

IN と NOT IN は HQL でもサポートされています。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 に答える