私はこのテーブルを持っています
CREATE TABLE IF NOT EXISTS `branch` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`studcount` int(11) DEFAULT NULL,
`username` varchar(64) NOT NULL,
`branch_fk` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FKADAF25A2A445F1AF` (`branch_fk`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ;
ALTER TABLE `branch`
ADD CONSTRAINT `FKADAF25A24CEE7BFF` FOREIGN KEY (`login_fk`) REFERENCES `login` (`id`);
ご覧のとおり、各テーブルには他のブランチ行(自己関係)を指す外部キーがあります。HQL(HQLを優先)を使用したクエリでユーザー名(またはID)を取得し、List<String>
(ユーザー名の場合)またはList<Integer>
( id)それは私のすべてのサブブランチのリストでした。
例で示しましょう
id studentcount username branch_fk
1 312 user01 NULL
2 111 user02 1
3 432 user03 1
4 543 user04 2
5 433 user05 3
6 312 user06 5
7 312 user06 2
8 312 user06 7
GetSubBranch(3)を呼び出すと、次のようになります。
5, 6
GetSubBranch(2)を呼び出すと、次のようになります。
4, 7, 8