Ordernar em JPA

1 resposta
jpajava
J

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

<a class="mention" href="/u/override">@Override</a>

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

<a class="mention" href="/u/size">@Size</a>(max = 60)

private String book;
@NotNull

<a class="mention" href="/u/size">@Size</a>(max = 30)

private String publisher;
@NotNull

<a class="mention" href="/u/size">@Size</a>(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;

1 Resposta

J

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();
}
Criado 20 de novembro de 2017
Ultima resposta 21 de nov. de 2017
Respostas 1
Participantes 2