Auto-relacionamento onetomany?

Boa dia, pessoal,

Estou com um problema que eu acho que não é muito comum.
Tenho no meu sistema uma tabela Usuarios. Essa tabela serve para cadastrarmos familias de usuario. Como um pai, uma mãe, um filho ou um irmão são todos usuários, essa tabela tem um auto-relacionamento.
Até aí tudo bem... Um usuario pode ter somente um pai e somente uma mae. Isso eu resolvi colocando o id_pai e id_mae na tabela de usuarios.
Mas e em relação aos filhos? Um usuario pode ter N filhos. Tive que criar entao uma tabela auxiliar onde fica registrado o id_usuario e o id_filho, ambos os id's vindo da tabela de usuarios.
Minha dúvida é como mapear essa relação com annotations. Eu preciso explicar para o hibernate de alguma forma que essa tabela auxiliar existe, mas n sei como. Segue a minha classe.
	@Id
	@SequenceGenerator(name = "SEQ", sequenceName = "seq_usuario", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="SEQ")
	@Column(name="id_usuario")
	private Long id; 
	
	@Column(name="cpf")
	private String cpf;
	
	@Column(name="nome")
	private String   nomeCompleto;
	
	@Column(name="st_vivo")
	private boolean  stVivo;
	
	@Column(name="sexo")
	private String sexo;
	
	@Column(name="data_nascimento")
	private Date dataNascimento;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name="id_pai", referencedColumnName="id_usuario", updatable=false, insertable=false)
	private Usuario pai;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name="id_mae", referencedColumnName="id_usuario", updatable=false, insertable=false)
	private Usuario mae;
	
	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="id_endereco")
	private Endereco endereco;
	
	@Column(name="nivel")
	private Integer nivel;

                private List<Usuario> listaDeFilhos;

Minha dúvida está na última linha do código. Como mapeá-la?

Obrigado!