Como solução alternativa, para obter uma entidade composta por outros atributos de entidade, você pode criá-la dentro da consulta, fornecendo um construtor para ela.
Consulta:
TypedQuery<Media> query = em.createQuery("SELECT NEW package_name.Media(m.title, b.isbn, b.authors)"
+ " FROM Book b, Media m"
+ " WHERE b.isbn = :isbn"
+ " OR lower(m.title) LIKE :title"
+ " OR b.authors LIKE :authors", Media.class);
Entidade:
public Media(String title, int isbn, String author){
//-- Setting appropriate values
}
Eu forneci uma amostra, altere os tipos de dados do construtor de acordo.