У меня есть эта таблицаРекурсивный запрос с использованием HQL
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
Я обрабатываю это путем записи рекурсивного Fuction, который вызывает запрос HQL – Am1rr3zA
На самом деле существует (стандартный) способ, которым могут выражать большинство основных баз данных это в SQL: рекурсивных общих табличных выражениях. MySQL является одним из немногих, который не поддерживает это. –