Tree + mysql

Galera, como eu não posso postar codigo quando estou no trabalho, mas vou dar uma idéia geral.

Bom, o que eu quero é saber COMO eu devo fazer ao pegar uma lista e transforma-la em uma arvore com as tabelas do mysql:
tabela departamento:
id|codigo|departamento|classe
1| 1 |Marketing |1
2| 1 |Financeiro |1
3| 1 |Comercial |1
4| 4 |Compras |2
5| 4 |Vendas |2
6| 2 |TradeMarketing|3
7| 3 |Contas a Pagar|4

ou seja, fazendo um auto relacionamento irá e a arvore devera ficar ficar assim:

id > codigo > classe >departamento
1,1,1 marketing
1,2,3 trade marketing


1,1,1 financeiro
1,3,4 contas a pagar

1,1,1 comercial
1,4,2 compras
1,4,2 vendas

E a única classe está assim:

//conexao banco de dados mysql, query select, e coloca em uma arraylist.

Obviamente já li sobre o Tree, Leaf, Brench, etc… do modo portugues: pai, filho.

Além disso, pesquisei de tudo no google, overstackflow e utilizando exemplos do primefaces e de outros inumeros, e nao consegui sequer escrever uma linha de código.