Tôi bị kẹt với một vấn đề đơn giản; đấu tranh cách gọi order by
trên một thực thể ed join
. Về cơ bản tôi đang cố gắng để đạt được những điều sau với JPA Criteria
:API truy vấn tiêu chí JPA và đặt hàng theo hai cột
select distinct d from Department d
left join fetch d.children c
left join fetch c.appointments a
where d.parent is null
order by d.name, c.name
Tôi đã điều sau đây:
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery<Department> c = cb.createQuery(Department.class);
Root<Department> root = c.from(Department.class);
Fetch<Department, Department> childrenFetch = root.fetch(
Department_.children, JoinType.LEFT);
childrenFetch.fetch(Department_.appointments, JoinType.LEFT);
c.orderBy(cb.asc(root.get(Department_.name)));
c.distinct(true);
c.select(root);
c.where(cb.isNull(root.get(Department_.parent)));
Làm thế nào để đạt được order by d.name, c.name
với Criteria API
? Tôi đã thử với Expression, Path nhưng không hoạt động. Mọi con trỏ sẽ được đánh giá cao.
Đây là câu trả lời cho tác giả bài viết được mô tả như thế nào? – ByeBye
Tại sao bạn nghĩ nó không? Anh muốn biết, làm thế nào để đặt hàng bởi nhiều tài sản. Câu trả lời của tôi có chứa làm thế nào để làm điều đó ... Tôi có thiếu gì đó không? – Adamsan
Bởi vì nó sẽ không hoạt động với phân biệt và sắp xếp theo thuộc tính từ bảng tham gia – ByeBye