Мне интересно, есть ли способ конвертировать мой собственный запрос в запрос JPQL.
Запрос
public interface GraphJobRepository extends JpaRepository<GraphJob, Long> {
@Query(value = "Select * From graph_job where id in (\n" +
" SELECT distinct g.graph_job_id\n" +
" FROM graph_job_role g\n" +
" INNER JOIN clover_role r ON g.clover_role_id = r.role_id\n" +
" WHERE r.role_name in (:roles))",
nativeQuery = true)
List<GraphJob> findGraphJobsByRoles(@Param("roles") List<String> roles);
}
CloverRole
@Data
@Entity
public class CloverRole {
@Id
@Column(name = "role_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String roleName;
}
GraphJob
@Entity
public class GraphJob {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@JoinTable(name = "graph_job_role", joinColumns = {
@JoinColumn(name = "graph_job_id")}, inverseJoinColumns = {
@JoinColumn(name = "clover_role_id")})
@ManyToMany
private Collection<CloverRole> roles;
}
Ничего из того, что я пробовал, не сработало, я уверен, что еслиЯ должен был добавить сущность объединяющей таблицы, я мог бы заставить ее работать, но мне интересно, знает ли кто-нибудь, как это сделать без фактического создания этой сущности.