Problema com auto associação

Olá Pessoal,

tenho o seguinte problema possuo uma classe CATEGORIA que pode ter se auto associar com ela mesma, cada categoria pode ter uma pai ou não e cada categoria deverá ter n caixas. Estou tendo problema pra mapear no hibernate corretamente, visto que já tem um tempo que não mexo com isso.

@Entity
public class Categoria {
	
	@Id
	@GeneratedValue  
	private Long id;
	@NotNull(message = "{validator.notEmpty}")
	private String nome;	
	@ManyToOne
	private Categoria categoriaPai;	
	@OneToMany
	private List<Categoria> categoriaFilhos =  new ArrayList<Categoria>();	
	@OneToMany	
	private List<Caixa> caixas = new ArrayList<Caixa>();
}

@Entity
public class Caixa {
	@Id
	@GeneratedValue
	private Long id;	
	private String nome;	
	@ManyToOne
	private Categoria categoriaCaixa;
}

este mapeamento está correto ?