Degisn Pattern Composite no Hibernate

Pessoal,

Segundo o GOF, o design pattern Composite pode ser assim implementado:

public abstract class Component {
    public abstract void metodo(){
        // ...
   }

    public List getChildren(){
        // ...
    }

    // ...

}

public class Composite extends Component {
    public abstract void metodo(){
        // ...
   }

    public List getChildren(){
        // ...
    }

    // ...

}

public class Leaf extends Component {
    public abstract void metodo(){
        // ...
   }

    // ...

}

Minha dúvida é:

Como eu poderia mapear isto utilizando anotações com Hibernate?

Levando em conta que um Component pode ter uma lista de outros Components e assim por diante, até chegar ao último nível, que é um Leaf.

Como dizer para o Hibernate o que é um Component e o que é um Leaf?

Ou neste caso, eu devo tratar tudo como um Component?

Obrigado