Я пытаюсь сделать JPQL-запрос на @Query из репозитория (расширяет CrudRepository) для следующей структуры:
@Entity
@Table(name="Campaign")
public class Campaign {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(columnDefinition = "int(11)")
private Long id;
...
private String displayName;
private String smrtProject;
...}
и
@Entity
@Table(name="CampaignFact")
public class CampaignFact{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(columnDefinition = "int(11)")
private Long id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "campaignId")
private Campaign campaign;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "callCenterId")
private CallCenter callCenter;
...}
Что я пытаюсьзапрос извлекает все кампании, связанные с центром обработки вызовов, по callCenterId.
До сих пор я использую собственный запрос (MySql), который возобновляется, что я пытаюсь сделать:
@Query(value = "SELECT c.* FROM CampaignFact cf Inner JOIN Campaign c ON c.id = cf.campaignId WHERE cf.callCenterId = ?1", nativeQuery = true)
List<Campaign> findByCallCenterIdNative(Long callCenterId);
Итаквозобновить, как можно переписать этот SQL в JPQL?PS: я работаю в этом хранилище:
public interface CampaignRepository extends CrudRepository<Campaign, Long>