Sto usando i dati di primavera jpa e querydsl e intrappolati su come scrivere una semplice query piacevole a sinistra unire due tabelle. Supponiamo che io sono un'entità di progetto e un'entità attività con rapporto OneToMany definito nel progetto, mi piacerebbe fare qualcosa di simile:join sinistro con dati di primavera jpa e 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
In JPQL, dovrebbe essere:
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
Ho un Interfaccia ProjectRepository, che estende JpaRepository e QueryDslPredicateExecutor. Questo mi permette di accedere a metodo:
Page<T> findAll(com.mysema.query.types.Predicate predicate, Pageable pageable)
So che a sinistra si uniscono può essere raggiunto facilmente con la creazione di un nuovo JPAQuery (entityManager). Ma non ho il gestore di entità esplicitamente iniettato con i dati primaverili jpa. C'è un modo semplice e semplice per costruire un predicato con join sinistro? Desideri che qualcuno qui abbia vissuto questo ed è in grado di darmi un esempio. Grazie.
Frey.
Potresti esprimere ciò che ti serve in JPQL e non in SQL? Ora non sono sicuro se hai bisogno del join sinistro per il caricamento o qualcos'altro. –
Ciao Timo, espressione JPQL aggiunta come richiesto –