Sì, ci sono fondamentalmente due errori:
1) La query va sistemata (manca il NEW):
codice:
String queryStr = "select new it.miaapp.entity.BookAndAutore(p.title, p.author, c.eta) from books p, autore c where (p.author = c.author)";
2) Non puoi usare una TypedQuery. TypedQuery funziona solo con le Entity, ma tu non stai restituendo un'Entity. Usa una query semplice:
codice:
Query q = em.createQuery( queryStr );
List<BookAndAutore> results = query.getResultList();
Potresti ricevere un warning in compilazione in quanto stai effettuando un cast non sicuro.
Ciao.