nella query fai riferimento a u.username (SELECT u.username etc. etc.)
però andando a guardare nell'entity non usi le annotation per indicare che il campo username è mappato in una qualche colonna della tabella.

Quindi l'EJB-QL non riconosce u.username come campo e l'entity manager non riesce a costruire la query.

Penso il problema sia questo.

Riguardo i sorgenti, non saprei.. dai un occhio al sito dell sun o scrivi su google il nome del file .java che intendi visualizzare, spesso lo trovi anche cosi.

Riguardo libro in italiano anche qui non saprei..
Ti consiglio di prenderne uno in inglese.. fai uno sforzo ora te lo ritrovi, è un investimento imparare a leggere l'inglese

(Un buon testo in inglese per iniziare è Beginning Java EE from novice to professional - Apress)