Boa noite pessoal, me ajudem pelo amor de Deus tenho um filtro que faço manualmente com a @query() que nela eu faço um join calculando total de uma venda ou seja,
SUM(valor * quantidade) as total
la no fim vou por o filtro pra vcs… o que ocorre é o seguinte, esse campo “temporario” total que se refere ao total da venda, quando eu crio ele na minha entity o jpa quer persisti ele no banco, daí eu utilizo o @transient porém ele nao fica visível na view, eu teria que da um setTotal() no controller pra poder ele ter algum valor…
ja tentei de diversas formas, segue abaixo…
@NumberFormat(pattern = “#,##0.00”)
transient BigDecimal total;
Desse forma acima, ele não é visível na view, não trás o valor do banco, somente se eu der um setTotal().
@Column(updatable = false, insertable = false) // até assim (não funciona)
@NumberFormat(pattern = "#,##0.00")
@Transient
private BigDecimal valortemporario;
desas forma acima, ele é visível na view, mas tenta persistir no banco, logico que dá erro, pois o campo não existe na tabela.
@Column(updatable = false, insertable = false) // até assim (não funciona)
@NumberFormat(pattern = "#,##0.00")
private BigDecimal valortemporario;
Dessa forma acima, também não funciona, ele tenta gravar no banco tbm…
abaixo deixo meu Repository so pra ver ter noção geral da coisa:
public interface AtendimentosRepository extends JpaRepository<Atendimentos, Long> {
String sqlPrincipal = "SELECT id_heados, pecastotal.total as total, "
+" maoobra_heados,+"veiculo_km_heados,bsextras_heados,"
+" tipoatendimento_heados, "
+ " datasaida_heados FROM heados "
+ " LEFT JOIN ( (SELECT pedos.controle_pedos,adicional_pedos,"
+ " sum( ( COALESCE(valor_pedos,'0') * COALESCE(quantidade_pedos,'0') ) - ( "
+ " ( COALESCE(valor_pedos,'0') * COALESCE(quantidade_pedos,'0') ) * COALESCE(desconto_pedos,'0') /100"
+ " ) ) as total FROM pedos as pedos WHERE adicional_pedos = 'N'"
+ " group by pedos.controle_pedos) ) pecastotal ON controle_pedos = id_heados"
+ " WHERE id_heados = :controle ";
@Query(value = sqlPrincipal, nativeQuery = true)
public Atendimentos atendimentoByControle(@Param("controle") Long controle);
}
Tentei encontrar uma forma de retirar da minha classe Entity o campo referente ao total, mas não encontrei nenhuma função pra isso.
Alguém já passou por isso?? tem outra solução??
Obrigado!!