J'ai ce tableaurécursive Query à l'aide 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`);
que vous pouvez voir chaque table a une clé étrangère qui pointent vers d'autres Row Branch (auto de Relation) Je veux une aide de HQL (préfèrent HQL) à obtenir un nom d'utilisateur (ou id) de moi et retourner un List<String>
(pour le nom d'utilisateur) ou List<Integer>
(pour l'identification) qui était une liste de tous mes subBranch;
permettez-moi de montrer l'exemple
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
quand je l'appelle GetSubBranch (3) Je veux revenir:
5, 6
et quand GetSubBranch d'appel (2) Je veux revenir:
4, 7, 8
Je le gère par écriture récursive Fuction qui appelle requête HQL – Am1rr3zA
En fait il existe un moyen (standard) dans lequel la plupart des bases de données majeures peuvent exprimer ceci dans SQL: expressions de table communes récursives. MySQL est l'un des rares qui ne supporte pas cela. –