Tôi đang sử dụng dữ liệu spring jpa và querydsl và bị mắc kẹt về cách viết truy vấn đơn giản tốt đẹp để bên trái nối hai bảng. Giả sử tôi có một tổ chức dự án và tổ chức công tác với mối quan hệ OneToMany quy định tại Dự án, tôi muốn làm một cái gì đó như:tham gia trái với jpa dữ liệu mùa xuân và querydsl
select * from project p left join task t on p.id = t.project_id where p.id = searchTerm
select * from project p left join task t on p.id = t.project_id where t.taskname = searchTerm
Trong JPQL, nó phải là:
select distinct p from Project p left join p.tasks t where t.projectID = searthTerm
select distinct p from Project p left join p.tasks t where t.taskName = searthTerm
Tôi có một Giao diện ProjectRepository, mở rộng JpaRepository và QueryDslPredicateExecutor. Đó mang lại cho tôi tiếp cận với phương pháp:
Page<T> findAll(com.mysema.query.types.Predicate predicate, Pageable pageable)
Tôi biết rằng trái tham gia có thể dễ dàng đạt được bằng cách tạo ra một JPAQuery mới (EntityManager). Nhưng tôi không có người quản lý thực thể được tiêm một cách rõ ràng với jpa dữ liệu mùa xuân. Có cách nào tốt đẹp và đơn giản để xây dựng một biến vị ngữ với phép nối trái không? Chúc ai đó ở đây đã trải nghiệm điều này và có thể cho tôi một ví dụ. Cảm ơn bạn.
Frey.
Bạn có thể diễn đạt những gì bạn cần trong JPQL chứ không phải trong SQL không? Tôi bây giờ không chắc chắn nếu bạn cần tham gia trái để tải hoặc cái gì khác. –
Xin chào Timo, biểu thức JPQL được thêm vào theo yêu cầu –