A correção do método getValorInicialMedioDoUsuario no DAO que tem um erro poderia ser dessa forma ou tem outra solução?
public double getValorInicialMedioDoUsuario(Usuario usuario) {
return (Double) session.createQuery("select avg(leilao.valorInicial) " +
"from Leilao leilao " +
"where exists(select 1 from Lance lance where lance.leilao = leilao and lance.usuario = :usuario )")
.setParameter("usuario", usuario)
.uniqueResult();
}