JPa...duvida createQuery...montar select?

Olá,
a nivel de curiosidade no select abaixo como faria
se tivesse que colocar campo a campo como

select u.id,u.nome,u.centros from universidade u

fiz isso e deu erro por que ???



public List pesquisarCreateQUeryUniversidade(Universidade universidade) {
		EntityTransaction transaction = manager.getTransaction();
		Universidade retorno = null;
		List<Universidade> lista = new ArrayList<Universidade>(0);
		try {
			transaction.begin();
			 
			 lista = manager.createQuery(
	        "select u from Universidade u where u.nome = ?1").setParameter(1, universidade.getNome())
	        .getResultList();
			 
			 manager.close();
		} catch (Exception e) {
			transaction.rollback();
			System.err.println("Erro: " + e.getMessage());
		} finally {
			
		}

		return lista;

	}
	
}

---

@Entity 
@Table(name = "Universidade")
public class Universidade {
    @Id
    @GeneratedValue
    @Column
	private int id;
    @Column
	private String nome;
	
	@OneToMany(targetEntity=Centro.class ,mappedBy="universidade",fetch=FetchType.EAGER, cascade =javax.persistence.CascadeType.ALL)
	private Collection<Centro> centros;


	public int getId() {
		return id;
	}


	public void setId(int id) {
		this.id = id;
	}


	public String getNome() {
		return nome;
	}


	public void setNome(String nome) {
		this.nome = nome;
	}

Provavelmente deve ter dado ClassCastException ou algo parecido…

Quando vc faz uma query campo a campo ele não retorna uma lista da Entidade e sim uma lista de um array de objects, a instancia deste objects vai depender do tipo de dados.

No seu caso o método .getResultList();

Retornaria uma lista com um array de 3 objetos…

Sendo:
[0] Um int
[1] Uma String
[2] Uma lista de Centros