Я рад сообщить, что это возможно. У меня есть решение, которое хорошо сработало для меня.
Единственное предостережение: если у вас несколько дочерних учетных записей, вы получите несколько результатов для родителя. Например:
parent 1: child 1
parent 2: child 1
parent 2: child 2
Это означает, что вам нужно будет выполнить результаты с помощью функции сортировки, чтобы получить все дочерние элементы в родительском массиве в многомерном массиве или получить все учетные записи как уникальные записи в плоском массиве.
Кроме того, это снижается только на один уровень. Если ваша иерархия многоуровневая, этот код необходимо будет изменить.
<fetch distinct="false" mapping="logical">
<entity name="account">
<attribute name="name" />
<link-entity name="account" alias="childaccount" to="accountid" from="parentaccountid" link-type="outer">
<attribute name="name" alias="childname" />
</link-entity>
</entity>
</fetch>