Projeções e createAlias no Hibernate

Olá pessoal do fórum, estou com uma dúvida sobre o .createAlias do Criteria. Eu tenho duas classes:

public class Despachante{
	
	@Id @GeneratedValue 
	private long idDespachante;
	
	@ManyToOne
	@JoinColumn(name = "ID_MUNICIPIO", insertable = true, updatable = true)
	@Fetch(FetchMode.JOIN)
	@Cascade(CascadeType.SAVE_UPDATE)
	private Municipio municipio;
     
        //outros atributos da classe
}
public class Municipio{
	
	@Id @GeneratedValue
	private long idMunicipio;
	
	@OneToMany(mappedBy="municipio",fetch = FetchType.LAZY)
	@Cascade(CascadeType.SAVE_UPDATE)
	private Collection<Despachante> despachantes;

         //outros atributos da classe
}

Na app eu tenho um método em que eu passo o nome e o Dao faz uma busca sobre o mesmo.

public List<Despachante> buscaPorNome(String nome) {
	return session.createCriteria(Despachante.class)
				.add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE))
				.addOrder(Order.asc("nome"))			
				.list();
}

Esse método funciona perfeitamente, mas está trazendo mais do que eu preciso pra ser exibido no view.
Pesquisei um pouco e vi a possibilidade de se usar projeções na busca. E escrevi isso:

public List<Despachante> buscaPorNome(String nome) {		
		return session.createAlias(Despachante.class,"d")
				.add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE))
				.addOrder(Order.asc("d.nome"))
				.createAlias("d.municipio","m",Criteria.LEFT_JOIN)				
						.setProjection(Projections.projectionList()
						.add(Projections.property("d.nome").as("nome"))
						.add(Projections.property("d.numero").as("numero"))
						.add(Projections.property("d.telefone1").as("telefone1"))
						.add(Projections.property("d.telefone2").as("telefone2"))						
						.add(Projections.property("m.nome")))
						.setResultTransformer(new AliasToBeanResultTransformer(Despachante.class))						
				.list();
	}

O código acima tb funciona, mas na minha view na tá aparecendo uma propriedade nome do objeto Município que está dentro
da classe Despachante. Utilizei o debug e vi que a projeção tá funcionando corretamente:

19:33:11,301 TRACE org.hibernate.type.descriptor.sql.BasicExtractor:71 - found [JOÃO] as column [y0_]
19:33:11,302 TRACE org.hibernate.type.descriptor.sql.BasicExtractor:71 - found [556] as column [y1_]
19:33:11,303 TRACE org.hibernate.type.descriptor.sql.BasicExtractor:71 - found [666637] as column [y2_]
19:33:11,303 TRACE org.hibernate.type.descriptor.sql.BasicExtractor:71 - found [] as column [y3_]
19:33:11,303 TRACE org.hibernate.type.descriptor.sql.BasicExtractor:71 - found [MunicípioExemplo1] as column [y4_]
19:33:11,307 TRACE org.hibernate.type.descriptor.sql.BasicExtractor:71 - found [JOÃO MATHEUS] as column [y0_]
19:33:11,307 TRACE org.hibernate.type.descriptor.sql.BasicExtractor:71 - found [3422] as column [y1_]
19:33:11,308 TRACE org.hibernate.type.descriptor.sql.BasicExtractor:71 - found [2839289] as column [y2_]
19:33:11,308 TRACE org.hibernate.type.descriptor.sql.BasicExtractor:71 - found [] as column [y3_]
19:33:11,308 TRACE org.hibernate.type.descriptor.sql.BasicExtractor:71 - found [MunicípioExemplo5] as column [y4_]

e o sql gerado é

select
        this_.NOME as y0_,
        this_.NUMERO_CREDENCIAL as y1_,
        this_.TELEFONE1 as y2_,
        this_.TELEFONE2 as y3_,
        m1_.NOME as y4_ 
    from
        DESPACHANTES this_ 
    left outer join
        MUNICIPIOS m1_ 
            on this_.ID_MUNICIPIO=m1_.ID_MUNICIPIO 
    where
        lower(this_.NOME) like ? 

Como o sql gerado é o esperado, resolvi imprimir a lista antes de devolvê-la ao controller, e nisso dá um java.lang.NullPointerException quando eu tento imprimir:

Alguém tem alguma idéia de como se resolver isso?

Abraços a todos

Jonh