Ordernar em JPA

Sou novo em JPA e gostaria da ajuda de vocês. Preciso ordenar minha query por estilo, mas não sei como fazer isso…
A conexão ta sendo gerenciada pelo EJB
Essa é minha consulta e o debaixo é minha entidade

@Override
public List listar() {
CriteriaBuilder cb = entityManger.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery(Book.class);
cq.from(Book.class);
return entityManger.createQuery(cq).getResultList();
}

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@NotNull
@Size(max = 60)
private String book;

@NotNull
@Size(max = 30)
private String publisher;

@NotNull
@Size(max = 4)
private int pages;

@NotNull
@OneToOne
@JoinColumn(name=“id”)
private Author author;

@ManyToMany(mappedBy=“books”)
private List users;

@ManyToMany
@JoinTable(name=“book_style”, joinColumns=
{@JoinColumn(name=“fk_bookId”)}, inverseJoinColumns=
{@JoinColumn(name=“fk_styleId”)})
private List styles;

Eu prefiro usar JPQL ao invés de Criteria, e como você não informou a partir de qual campo do estilo você quer ordenar, estou considerando que o estilo tenha um id e que quer ordenar por ele.

@Override
public List listar() {
    String jpql = "select b from Book b join b.styles s order by s.id";
    return entityManger.createQuery(jpql).getResultList();
}