Olá,
Estou tentando reescrever uma query nativa para JPQL, porem todas tentativas que tentei não funcionaram.
//esta é a query nativa (ela funciona)
@Query(value = "SELECT SUM(quantidade_ingressos) FROM cliente_ingressos "
+ "WHERE cliente_ingressos.evento_id = :eventoId" ,nativeQuery = true)
//tentei varias formas, mas esse é o JPQL que achei que estaria mais proximo da sintaxe correta (mas sempre é lançado BeanCreationException e diz que ela n tem como ser validada
@Query("SELECT SUM(ingressos.quantidadeIngressos) FROM Cliente c "
+ "WHERE c.ingressos.evento.id = :eventoId")
Classe cliente
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Cliente{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String email;
@ElementCollection
@Embedded
@Builder.Default
private List<Ingresso> ingressos = new ArrayList<>();
}
classe ingresso
@Embeddable
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Ingresso {
@ManyToOne
private Evento evento;
private BigDecimal valorIngresso;
private Integer quantidadeIngressos;
}
classe evento
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Evento {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private BigDecimal valor;
@Enumerated(EnumType.STRING)
private TipoDeEvento tipo;
@ManyToOne (fetch = FetchType.EAGER)
private Local local;
private LocalDate dataEvento;
private LocalTime horaEvento;
private Integer quantidadeIngressos;
private Integer quantidadeIngressosVendidos;
private Integer quantidadeIngressosDisponiveis;
private String caminhoImagemDoEvento;
}