Duvida em mapeamento, utilizar @CollectionOfElements ou não?

Pessoal,

Estou fazendo um método para persistir os dados de um NFe/CTe em um BD utilizando Hibernate. Fiz o mapeamento das classes próximo do mapeamento do XML, ou seja, uma classe InfNfe, Ide, Compl, etc… etc…

//Dados NFe
@Entity
public class InfCte implements Serializable{
	
	@Id
	public String id;
	public double versao;
        //Como fazer este mapeamento???????
        public Compl compl;
//Dados complementares
public class Compl implements Serializable{
	//Característica adicional do transporte
	@Id
	public String xCaracAd;
	//Característica adicional do serviço
	public String xCaracSer;
	//Funcionário emissor do CTe
	public String xEmi;
	//Município de origem para efeito de cálculo do frete
	public String origCalc;
	//Município de destino para efeito de cálculo do frete
	public String destCalc;
	//Observações Gerais
	public String xObs;

A duvida é, qual a maneira mais correta de mapear Compl em InfCte?

Grato,
Wallfox